Anderson's return of five wickets for 20 runs in 13.2 overs left him just one dismissal shy of becoming the first bowler to take 100 Test wickets at Lord's.
Woakes, recalled in place of fellow pace-bowling all-rounder Ben Stokes, omitted because of his ongoing trial for affray, removed India captain Kohli (23) and Hardik Pandya (11) in extraordinary fashion.
In both cases he had the batsmen caught by Jos Buttler the very next delivery after the second slip had dropped each of them, with the ball going for four.
Rain, which meant there was no play at all on Thursday, saw just 40 minutes' action, featuring 8.3 overs, before tea.
But that was time enough for India to be 15 for three.
England captain Joe Root decided to field when he won the toss, a combination of cloudy skies and a green-tinged pitch ideal for Anderson, England's all-time leading Test wicket-taker.
The swing specialist struck with just the fifth ball of the match when Murali Vijay, aiming legside, was undone by late outswing and bowled for a duck.
Vijay's exit brought in Cheteshwar Pujara, recalled after India dropped struggling opener Shikhar Dhawan.
Pujara could only watch as Anderson had KL Rahul (eight) caught behind by wicket-keeper Jonny Bairstow.
Anderson had taken two for five in 15 balls to leave India 10 for two.
Soon afterwards, rain stopped play, with Pujara and Kohli then both one not out.
The last thing India needed when play resumed was a run out.
Yet that was what happened off the last of the 12 balls bowled between lunch and tea.
Pujara pushed Anderson towards point and set off for a single. Kohli responded, only to change his mind and retreat.
England debutant Ollie Pope kept his composure, however, the 20-year-old Surrey batsman sprinting in from point to remove the bails.
No sooner had Pujara been dismissed, then there was a fresh downpour and it was not until 5.10pm (1610 GMT) that the match re-started.
Dropped slip catches proved a problem for England during a 31-run win in the first Test at Edgbaston that left them 1-0 up in this five-match series, with Kohli missed twice on the way to 149 -- his maiden Test century on English soil.
Friday's final session saw Ajinkya Rahane dropped on five by fourth slip Root off Stuart Broad.
Kohli's duel with Anderson had been one of the highlights of the first Test and the number one batsman in the world rankings again showed his class when he drove England's spearhead for four.
England were entitled to fear the worst when Kohli, on 19, was missed by Buttler, their one-day international wicket-keeper, off first-change Woakes.
But the very next delivery saw Kohli, on 23, edge a full-length Woakes outswinger and this time Buttler made no mistake.
It was a similar story with Pandya, Woakes putting the disappointment of a dropped catch aside to strike with his very next ball.
Sam Curran, man-of-the-match at Edgbaston after starring with both bat and ball, took the fielders out of the equation when the left-arm swing bowler bowlede Dinesh Karthik with a ball that cut back late to reduce India to 62 for six.
Ravichandran Ashwin top-scored with 29 before he was plumb leg before to Broad before Anderson ended the day's play when No 11 Ishant Sharma was lbw for nought.
First Published: August 11, 2018, 8:27 AM IST