After two days of outright domination at Headingley, England encountered some timely Indian resistance to make a fight of the third LV= Insurance Test.
England must have sniffed an outside chance of a three-day victory when they were finally bowled out for 432 early on Friday morning, with the weight of a 354-run first-innings lead behind them.
They had needed less than 41 overs to skittle the tourists for 78 at the start of the match, but scoreboard pressure and gloomy overhead conditions were not enough to undermine India this time around.
Instead they left England toiling in the field for 80 overs as they reached 215 for two, with Cheteshwar Pujara's 91 not out leading knocks of 59 from Rohit Sharma and 45no from Virat Kohli.
With a lead of 139 the gravity of the match is still pulling in England's favour but it is clear now that nothing will happen without a scrap.
It took a spectacular one-handed catch from Jonny Bairstow to get the home side on the board, KL Rahul nicking Craig Overton's final ball before lunch, before a wicketless afternoon session gave India a proper foothold.
England missed a chance to get the in-form Rohit for 39 when Joe Root was too late with a DRS review but the unlucky bowler, Ollie Robinson, got his man in the second over after tea. That was as good as it got with an unbroken third-wicket stand of 99 to follow.
England dragged India back into the field rather than declaring overnight but the phony war was short-lived, comprising 15 minutes, nine runs and two wickets as Overton (32) and Robinson (nought) were removed with minimal fuss.
That meant another chance for India's chastened batting unit to redeem itself, with the floodlights on and the ball swinging nicely for James Anderson. But where the 39-year-old wiped out the top order on Wednesday, now he was narrowly missing the edge or seeing nicks die in front of the slips.
Robinson thought he had Rahul when he went full at the stumps and won an lbw verdict, but England lost a review chasing his hunch. Overton was next to try his luck, finding a hint of added lift, and it was the Somerset seamer who got things going.
A thick edge by Rahul appeared to be heading towards Root when Bairstow's radar pinged and he flung himself hard to his left, snapping up an electric one-handed take. With the ball safely grasped, he lay flat on his back in elation as the celebrations began.
From 34 for one at lunch, Rohit and Pujara added another 78 in the middle session as England's energy sagged. Pujara, lacking in timing and confidence in recent months, was given a handful of cheap runs to get going and eagerly accepted every invitation.
A light aircraft flew by trailing a banner that read "Sack the ECB & Save Test Cricket" but England's concerns extended no further than the partnership at hand. Anderson was looking less than 100 per cent fit, Sam Curran served up too many half-volleys and Moeen Ali was used reluctantly.
An unsuccessful lbw appeal from Robinson may well have ended Rohit's stay but, after losing an earlier review, Root hesitated to challenge. He eventually made a tentative signal only to be told the 15-second window had closed. Almost inevitably, ball-tracking suggested it was out and head coach Chris Silverwood hung his head on the balcony.
With Anderson briefly off the field it fell to Robinson to lift English spirits after tea, beating the bat for the umpteenth time and finally getting an lbw shout to stick against Rohit.
Kohli's arrival spurred Anderson back from his break but a two-over burst from him cost 20 runs, suggesting he was not quite at full tilt. Pujara and Kohli both scored fluently, the former recovering the snap in his wrists as he worked the ball around at will.
Bad light forced England to use spin from both ends in the closing stages, and it was Root who almost pulled a rabbit from the hat when he spun one through Kohli's gate on 34. Somehow the ball cleared the stumps as it zipped between bat and pad, leaving England relying on the second new ball on the fourth morning.