Zimbabwe's triumph with a day to spare was their second in 31 attempts since they were granted full Test status six years ago. Their first win was at home to Pakistan in the opening Test of a three-match series in 1995.
The home country had a disappointing start to the day as their last eight second-innings wickets tumbled for 74 runs when they resumed at 219 for 2, which had been a fine response after trailing by 59 on the first innings.
The spin bowlers Anil Kumble and Harbhajan Singh did most of the damage and finished with 4 for 87 and 3 for 64 respectively.
Zimbabwe hit back immediately as openers Nayan Mongia and Navjot Sidhu succumbed to loose strokes without scoring, leaving India stuttering at 6 for 2.
Johnson, making his Test debut after playing much of his cricket for the South African province Natal, removed Tendulkar with a fine away-swinger to precipitate a catch. When the Indian captain Mohammad Azharuddin attempted to cut a ball from the former Hampshire pace bowler Heath Streak and fell to a spectacular slip catch by Alistair Campbell, leaping high and taking the ball one-handed, India were tottering at 37 for four.
But Rahul Dravid with 44 and Saurav Ganguly, who made 36, checked the slide and gave India a sniff of victory with a fifth-wicket stand of 67 in 130 minutes. But when the pair were both dismissed within five minutes of each other, an hour after tea, Johnson then returned to wrap things up.
Javagal Srinath (23) and Harbhajan Singh (15) frustrated Zimbabwe with a last wicket stand of 40 before the hosts sealed a deserved success.Reuse content