Rahul made 51 not out and Rahane added a rapid unbeaten 38 to help India chase down the modest 106-run victory target with more than five sessions to spare, the opener completing his sixth fifty of the series when he scored the winning runs.
Wrapping up the win appeared a formality for India when their openers walked out at the picturesque venue nestled in the shadows of the Himalayas needing just 87 runs to seal the series with all 10 second innings wickets intact.
Josh Hazlewood, however, seemed determined to make sure India would need to work for the win and the paceman struck Murali Vijay's pad with consecutive balls in the first over but both leg-before wicket appeals were turned down by the umpire.
At the other end, Rahul was showing his fluency against spin, driving and sweeping Steve O'Keefe for a couple of boundaries in the left-armer's second over of the day.
Pat Cummins then came on to inject some brief excitement to proceedings when two Indian wickets fell in the paceman's second over of the morning.
First he dismissed Vijay, caught behind for eight with his first delivery, and five balls later, Cheteshwar Pujara, normally a good judge of singles, was run out without scoring when he attempted a risky run.
Glenn Maxwell did an excellent job at point, where he collected Pujara's push and threw down the middle stump at the non-striker's end with the batsman well short of crease after a mix-up with Rahul.
Leading the side in the absence of injured skipper Virat Kohli, Rahane played with uncharacteristic aggression, hitting Cummins for back-to-back sixes at a stadium marking its debut as a Test arena.
The victory sealed India's seventh series win in a row, dating back to their triumph in Sri Lanka in August 2015.
The win also brought a successful end of India's 13-Test home season, in which they won 10, drew two and had the lone loss to Australia in the opener in Pune.
300 & 137 lost to India
332 & 106/2 in 23.5 overs (Rahul 51*, Rahane 38*) by eight wickets