The 27-year-old Australian scored 153, 104 of which came before lunch, even though he did not arrive at the crease until both openers had been removed in the first five overs.
Law completed his 100 from 84 balls and went on to chalk up 26 fours and one six in an innings which spanned 147 deliveries.
It was an effort which left the acting Indian captain, Sachin Tendulkar, embarrassed since he dropped a chance at first slip when Law had made only nine.
Law was eventually caught off the attacking spinner Narendra Hirwani and walked off to a standing ovation. It was his third first-class century of the summer and his fifth in all competitions.
Paul Prichard shared in a fourth-wicket stand of 169 with Law, but had to settle for the minor role as he made 53 from 133 balls.
However, Nasser Hussain, hoping to press his claims for a place in England's squad for next week's first Test at Edgbaston, made only seven before falling to Paras Mhambrey.
By the close, India had scored 81 for 1 to move into the final day with an overall lead of 132. Ajay Jadeja will resume on 55, having so far helped himself to seven fours and two sixes.
The former England paceman Graham Dilley is rejoining Worcestershire as a part-time bowling coach and consultant. Worcestershire are looking to Dilley, who spent six seasons at New Road, to bring on the young crop of pace bowlers, including Paul Thomas, Alamgir Sheriyar, James Brinkley and Ben Preece.
The Test and County Cricket Board will be installing giant video screens at all six Cornhill Test matches this summer, as well as at the two domestic cup finals at Lord's.Reuse content