Anderson then had Cheteshwar Pujara edging to third slip Jonny Bairstow for nine, the batsman's latest low score.
Pujara's exit came during a spell of 2-17 in six overs from Anderson, who had been doubtful for this match with a thigh problem.
But Rahul, following his 84 in last week's rain-marred drawn first Test at Trent Bridge, was 55 not out at tea, with India captain Virat Kohli unbeaten on nought.
It needed a high-class delivery to dislodge Rohit who, for all he missed out on an eighth Test century, could be proud of a 145-ball innings featuring 11 fours and a six.
There had been fears Anderson might not be fit to take his place in an England attack already missing Stuart Broad after his longstanding new-ball partner had been ruled out of the rest of this five-match series with a calf injury.
It was no surprise when England captain Joe Root -- the only home batsman to pass fifty in the series opener with scores of 64 and 109 -- decided to field first after winning the toss under overcast skies and on a green-tinged pitch that promised to assist his quick bowlers.
But India were 46-0 after a morning session where rain meant only 18.4 overs were bowled.
Rohit was initially watchful against the new ball duo of Anderson and Ollie Robinson, taking 46 balls to score his first eight runs.
But, bolstered by a correct defence, he scored 43 runs off his next 37 deliveries.
Both Rohit and Rahul exhibited great self discipline in leaving the ball outside off stump when not committed to an attacking shot.
And when left-arm swing bowler Sam Curran, on as first change, strayed in direction, Rohit hit him for four fours in an over including a stylish square drive.
Rohit, 35 not out at lunch, completed an 83-ball fifty including eight fours,
He then hooked an 88 mph delivery from Mark Wood, recalled in place of Broad, for six and then pulled him commandingly for four.
Off-spinner Moeen Ali, in for Dan Lawrence in one of three changes to England's XI, then saw Rohit dismissively loft him over mid-on for a four that bounced just short of the rope.
Rahul, however, did loft Moeen for six, his first boundary in a 137-ball fifty.