Bounding in with vigour and determination after replacing James Anderson at the Pavilion End, Broad dismissed captain Virat Kohli (17) and wicketkeeper Dinesh Karthik (0) off consecutive balls in the second innings.
He finished with four for 44 in an Indian second innings total of 130.
India, dismissed for 107 in their first innings, had needed 289 runs to make England bat again after the home side declared their first innings closed at 396 for seven with Chris Woakes unbeaten on 137.
Anderson became the first man to take 100 test wickets at Lord’s when he dismissed opener Murali Vijay without scoring for the second time when India batted again. He then trapped Lokesh Rahul lbw for 10.
Broad took over from Anderson to dismiss Ajinkya Rahane, smartly caught at third slip by Keaton Jennings for 13, and then bowled Cheteshwar Pujara off his pads for 17.
Kohli, who did not field when India took the field at the start of play because of a stiff back, was in obvious discomfort. He was given out caught behind when the ball brushed his glove and Karthik was then lbw to the next ball.
Both appeals were turned down by on-field umpire Aleem Dar but upheld by the third umpire after England asked for a television review.
After the tea interval, Anderson and Woakes combined to sweep aside the tail, with Anderson adding four wickets to his first innings haul of five for 20.
Tailender Ravichandran Ashwin again top-scored for India with an unbeaten 33.
“I thought we played very well,” England captain Joe Root said. “To come in and put pressure on the opposition in a tough batting period was good. But we haven’t played the complete game yet.”