Tendulkar became the first cricketer to score 50 centuries in a superb rearguard act from the 'little master' [Reuters]
Sachin Tendulkar scored his 50th test century but it looked unlikely to save India from losing the first test against South Africa.
Tendulkar batted on Sunday for five hours in scoring 107 not out, sharing a defiant seventh-wicket stand of 172 with captain Mahendra Singh Dhoni (90) as India reached 454 for eight wickets when a storm ended play on the fourth day at Centurion.
His landmark century, which came in 258 minutes and 197 balls of great composure and technique, had helped India reduce their deficit from 294 runs to 30, but the world's number one ranked team have just two wickets remaining.
Dhoni was in belligerent mood as he belted 14 fours in his 106-ball innings, before Dale Steyn's well-directed lifter forced the Indian captain to fend a catch which wicketkeeper Mark Boucher claimed just above his bootlaces.
Tendulkar and Dhoni had been particularly daring against the second new ball as South Africa failed to take a wicket between lunch and tea.
Tendulkar, 37, went from 89 to 95 when he blasted Harris for a straight six and soon after, notched his seventh century of the year.
He raised both arms and looked skywards with a broad smile on his face, while the South African team provided warm applause and the Centurion crowd gave him a standing ovation.
The hosts grabbed another wicket just before the close when Harbhajan Singh (1) edged a low catch to slip off Harris, putting Shanthakumaran Sreesanth at the crease with Tendulkar on three not out.
Tendulkar's exploits took their toll on the South African bowling figures, with spearhead Steyn having taken three for 103 in 27.2 overs, while Harris has claimed two for 88 in 30 overs.
Tendulkar and Dhoni batted through the second session as India reached tea on 394 for six, still trailing by 90 runs.
India had lost three wickets for 35 runs to slide to 277 for six at lunch, with South Africa taking the second new ball 2.1 overs after the break.
Earlier, India's Rahul Dravid became only the third batsman to score 12,000 runs. He stubbornly denied the hosts for 161 minutes and 109 balls in scoring 43 runs that took his career tally to exactly 12,000 runs in 255 innings.
Only compatriot Tendulkar and Australia's Ricky Ponting (12,333) have scored more runs than 37-year-old Dravid.
It took a top-class delivery from Morne Morkel to eventually dismiss Dravid. A back-of-a-length ball drew the batsman forward and a slight deviation off the seam found the outside edge of the bat and offered wicketkeeper Mark Boucher a simple catch.
India had resumed on 190 for two with Dravid on 28 and nightwatchman Ishant Sharma on seven.
Ishant survived a chance on 15 when he gave Morkel a return catch. But umpire Ian Gould suspected the fast bowler may have bowled a no-ball and called for a television replay, which confirmed Morkel had over-stepped.
Ishant added eight more runs to his score before Hashim Amla nonchalantly snapped up a sharp catch at short-leg off Dale Steyn.
South Africa ended the morning well on track for an innings victory by snapping up two more wickets in the last five overs of the session.
Vangipurappu Laxman (8), with his feet rooted on the crease, drove at left-arm seamer Lonwabo Tsotsobe and edged the ball to AB de Villiers at a wide third slip.
Suresh Raina (5) fell on the stroke of lunch, offering a simple catch to Harris at first slip as he played a short ball from Kallis with a dreadful angled bat outside off stump.