Irfan Pathan and Zaheer Khan pulled the momentum back from Zimbabwe as they reduced the hosts to 39 for four by the end of the second day of the second and final Test, at the Harare Sports Club on Wednesday.
The Indian left-arm pace duo took two wickets each to slight Zimbabwe's chances in the game. India have a lead of 166 runs, having pushed along to 366 in the first innings.
Indian batsmen Rahul Dravid and Gautam Gambhir missed out on scoring centuries on a day dominated by pace bowlers. Thirteen wickets fell on the day as bowlers from both sides used the true bounce of the pitch and the late swing to their advantage.
Heath Streak led a diligent bowling attack from Zimbabwe and ended with career-best figures of six for 73.
Zimbabwe, who lost the first Test in Bulawayo by an innings and 90 runs, could face similar fate when they take the field on Thursday.
Morning session: (26 overs, 52 runs, 3 wickets)
The last over of the first day saw Gautam Gambhir's nerves surface all of a sudden. The left-hander had looked in fluid touch throughout his innings, but, with only five runs short of his second Test hundred he could all but offer a nervous smile as Heath Streak had the ball whiz past him.
On the sidelines, Greg Chappell and Ian Frazer shared the tension of the young man, waiting in anticipation for the moment.
Three overs into the second day, all that drama seemed warranted.
The Delhi opener was gobbled by Blessing Mahwire on 97 (121b, 17x4). The ball pitched outside the off stump and angled away; Gambhir went for a drive but the ball picked a faint edge straight to wicketkeeper Tatenda Taibu. (198-2).
The disappointment was for all to see as Gambhir took a while to gather his thoughts and walk back to the dressing room. It was the second time the batsman had let his guard down in the nineties. He was out on 96 in the first innings of the drawn Test against South Africa in Kanpur last year.
Gambhir's wicket brought an end to the 123-run stand between him and Rahul Dravid.
Dravid, resuming on 49, also had a minor scare before reaching 50. The ball caught the leading edge while he was trying to turn in on the leg-side. Fortunately, it lobbed away from the cover fielder for Dravid to complete the single.
It was his 38th fifty in Tests and came off 107 balls.
Though VVS Laxman slammed two fours behind backward point, he looked tentative during his 20-ball stay and was trapped leg before wicket by Streak.
Streak, who has bowled brilliantly in the game, got the ball to move in after pitching on the off-stump. Laxman played down the wrong line and saw the ball thud on the pads right in front of the stumps. (219-3).
Dravid's concentration was remarkable but the batsman was hitting the ball hard straight to the fielders. Taibu spread the field after Streak's spell and the Indian vice-captain was finding runs difficult to come by.
With captain Sourav Ganguly also starting shakily, the Indian run-rate dropped from 4.4 to 3.6 after the wicket of Gambhir. India's run-rate in the session was 2.00.
Ganguly's stay at the wicket came to an end in the penultimate over before lunch after he was out caught behind off Waddington Mwayenga. The Zimbabwean bowler got his first Test wicket as Ganguly, on 16, edged a delivery going away from him. (245-4).
Mwayenga bowled a similar one to Yuvraj Singh first-up. The batsman was beaten outside the off-stump but the umpire turned down a loud appeal from the bowler.
At lunch, India were 247 for 4, with Dravid was unbeaten on 73 and Yuvraj yet to open his account.
Post-lunch session: (26 overs, 71 runs, 3 wickets)
Dravid and Yuvraj found scoring painfully slow after lunch as the Zimbabwe bowlers, Mwayenga in particular, stuck to a consistent line outside the off stump.
The Indians were ready to play Zimbabwe's game rather than take charge and assert their dominance, like Sehwag and Gambhir had at the start of the innings. The batsmen should've shown the courage to dictate terms rather than being smug about their position in the game.
Dravid broke the silence briefly with a classy drive that crossed the boundary for only the seventh time in the day. It was also India's first boundary after 14 overs.
Yuvraj followed it with two cover drives off successive overs from Blignaut and Mwayenga.
However, with Streak taking the new ball after 80 overs, the batsmen quickly retired into the shell. Streak's spell with the new ball was the only spark in the otherwise sleepy afternoon.
The right-arm pacer bowled close to the stumps and got the ball to swing either way. It was only the high bounce that saved the batsmen on a couple of close calls.
The fifth-wicket partnership pushed past 50 runs after eating up 111 balls.
India's snooze show ended when Dravid and Yuvraj were out in successive overs.
Streak bowled a fuller length to the left-hander. He missed the target on a couple of occasions but had Yuvraj bowled off an in-swinging delivery almost at yorker length. Yuvraj tried to lean into the shot but saw the ball crash into middle and leg stump. (306-5)
Dravid was the second Indian to miss out on a hundred by a whisker. His innings was on a downward curve on strike-rate after he crossed the 50 and never quite looked like breaking into triple figures after spending an eternity in the nineties.
He was bowled by Mahwire on 98 (237b, 14x4), trying to play the ball on the leg side. It swung in slightly and flattened the leg stump. (306-6).
Dinesh Karthick was close on his heels to the trip back to the dressing room. Streak did him in with an out-swinger. The ball slid off the face of the bat onto the stumps as Karthick tried to defend off the back foot. (318-7).
Anil Kumble (0*) and Irfan Pathan (8*) prevented further damage as India went to tea at 318 for 7.
Post-tea session:
Streak was on the button right from the beginning, troubling Anil Kumble with his pace and accuracy. After making the ball shape away from the batsman he produced an in-swinger, which crashed onto Kumble's pad. It was only the exaggerated swing from Streak that saved him.
Streak had Kumble caught at first slip to claim his seventh five-wicket haul in Tests. The ball seamed away from the batsman after pitching outside off and Kumble had a big swing at the ball only to see it take a thin edge to Dion Ebrahim. (342-8)
Irfan Pathan, at the other end, seemed more confident against the Zimbabwe pacers, pulling comfortably whenever they erred in line. His first 24 runs came in boundaries.
Harbhajan Singh, who seems to keep discretion out when he wields the willow, was baited into false shots by the bowlers. He got a lease of life when Blessing Mahawire, at point, dropped a skier off Blignaut on five.
While Harbhajan had a charmed life at the crease, it was Pathan in line to become Streak's next victim. The left-hander connected the pull well but the bowler had stationed a fielder at deep mid-wicket for the shot. Charles Coventry charged in and dived to complete a difficult chance. (361-9)
India's innings ended at 366 when Zaheer Khan was caught behind on three off Blignaut. It was a consolation wicket for the bowler who had an ordinary day on the field.
The hosts may still find it difficult to climb back into the contest, but they gave themselves a fair chance by halting India's momentum on the second day.
Zimbabwe second innings: (17 overs, 39 runs, 4 wickets)
The hard work put in by the Zimbabwe bowlers in the day was undone by their batsmen, as they subsided without a whimper.
India opened the attack with a three-slip cordon that extended to five slips and close-in catchers at silly point and forward short-leg as the wickets kept tumbling.
Irfan Pathan chopped off the opening pair of Terrence Duffin and Brendan Taylor.
He made Duffin poke at a delivery pitched short of length and swinging away to Rahul Dravid at first slip. (13-1).
Taylor was a little unfortunate as he fell leg before wicket to Pathan off a ball that hit him slightly above the pads. (18-2).
Zaheer, who bowled with a better rhythm in the second innings, then scalped the next two wickets to have Zimbabwe reeling at 21 for four.
Dion Ebrahim drove the ball, but it took the edge and flew to gully. The fielder, Yuvraj Singh, dived full length to his left and latched on to the catch. (18-3).
A sharp catch by Anil Kumble then brought the downfall of captain Tatenda Taibu. The batsman edged the ball and Kumble lunged across to hold on to the catch as the ball was dropping before him. (21-4).
Before Zimbabwe were 10 overs into their innings, Streak was out in the middle to stave the home team off further damage.