Woakes was 120 not out, having shared a partnership of 189 with Jonny Bairstow (93) that was an England record for the sixth wicket in Test matches against India, beating the 171 put on by Ian Botham and Bob Taylor at Bombay (now Mumbai) in 1980.
India, following Thursday's total washout, had batted under overcast skies and on a green-tinged pitch in an innings that lasted a mere 35.2 overs.
Woakes' top Test score was 66 before this innings but he soon reached his first century for England off just 129 balls in an innings which included 15 boundaries.
Hosts England lost Keaton Jennings for 11 runs after a quick start, as Mohammed Shami provided the breakthrough for India.
After a rain delay, Cheteshwar Pujara was run out by debutant Ollie Pope and a downpour followed immediately.
Pope made a promising 28 before he was lbw to Pandya.
Jos Buttler (24) got in and got out before he too fell lbw aiming across the line as Shami took a third wicket this innings.
Even though Bairstow was the more senior of the pair, it was Woakes who looked the more impressive, driving, cutting and pulling the ball with authority around the Lord's outfield.
India had recalled left-arm wrist-spinner Kuldeep Yadav, who tormented England during the preceding one-day series, for just his third Test after dropping paceman Umesh Yadav, who bowled well at Edgbaston.
Off-spinner Ravichandran Ashwin (29) then joined Rahane in the middle to add 22 runs for the seventh wicket before the old warhorse James Anderson came back to add more misery to the visitors with the dismissal of the Mumbai batsman.
Bairstow received sound support from the correct Woakes, selected after fellow all-rounder Ben Stokes was omitted because of clash with his ongoing trial for affray.
Bairstow hit eight boundaries and scored freely to keep the pressure on the India bowlers and Woakes also struck eight fours following his two wickets on Friday.