Rahane, 27, hit two sixes and nine boundaries in his 155-ball knock, the highest score in what has otherwise been a low-scoring series that India leads 2-0.
The talented right-hander, dropped on 78 by South Africa skipper Hashim Amla, defied an inspired bowling attack led by off-spinner Dane Piedt to consolidate the Indian innings.
Piedt grabbed four wickets for 101 runs while recalled paceman Kyle Abbott chipped in with three scalps on a strip that offered inconsistent bounce to the bowlers.
India's Kohli hits back in S.Africa pitch row
India are looking to pile on the agony for the top-ranked tourists after winning the first and third Tests to take an unassailable lead, while the second in Bangalore was washed out.
Under grey, smoggy skies, Rahane raced to his eighth Test half-century and the first in India with a slog-swept six off Piedt followed by a boundary one ball later.
He also shared 70 runs with Indian captain Virat Kohli who hit a breezy 44 off 62 balls before a freak dismissal cut short his innings.
The 25-year-old Piedt, playing only his second Test and the first of the series, provided the early breakthroughs, dismissing Murali Vijay (12) and opening partner Shikhar Dhawan (33).
Vijay was caught in the slips by Amla while Dhawan was given lbw, the sharply turning ball hitting his front pad as he tried to defend.
4th Test: India in no mood of letting up despite series win
Piedt was lucky to get the scalp of Kohli, who tried to play a sweep shot, but the ball hit Temba Bavuma fielding at short leg and ricocheted up in the air.
An alert Dane Vilas then leapt quickly from behind the stumps and dived forward on the pitch to catch the ball with his gloves.
Rohit Sharma (one) almost gifted Piedt his fourth wicket, tamely holing out to Imran Tahir near the long-on fence.
Abbott sent back Cheteshwar Pujara (14) and Wriddhiman Saha, who saw his stumps uprooted in spectacular fashion at the stroke of tea.
The burly paceman returned to dismiss Ravindra Jadeja in the final session that saw 92 runs being scored at the cost of just one wicket.
The Indian openers started cautiously before losing two wickets in the space of seven balls immediately after lunch.
Dhawan, who has been struggling with form, faced 18 deliveries before getting off the mark. But after growing in confidence, he hit a couple of boundaries, including a pulled four to mid-wicket off Piedt.
Vijay earned a reprieve on 10 when he edged a delivery from Abbott to AB de Villiers at second slip.
But the umpire signalled a no-ball and TV replays confirmed the delivery was not legitimate.
India picked paceman Umesh Yadav in place of leg-spinner Amit Mishra in the only change from the side that won last week's Test in Nagpur.
The tourists brought in Bavuma, Abbott and Piedt in place of Stiaan van Zyl, Kagiso Rabada and Simon Harmer.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ