Shubman Gill made 91 and Rishabh Pant was unbeaten on 89.
They win the series 2-1, keeping the Border-Gavaskar they won in Australia two years ago.
It is perhaps one of the finest Test series wins by any away side, especially given the list of players unavailable to India by the time the final match was played.
That included captain and talisman Virat Kohli, who only played in the first Test before departing to be at the birth of his first child, a host of fast bowlers and first-choice spin pair Ravichandran Ashwin and Ravindra Jadeja.
In addition to the absent players, India somehow recovered from being bowled out for 36 – their lowest total in Test cricket – in losing the series opener by eight wickets.
What followed were three Tests of the highest quality and drama, with India producing a stunning comeback to win the second Test by eight wickets, then defiantly batting through the final day to earn a draw in the third.
But they saved their best performance for last, a superb contest that ensured the series went down to the final hour of the last day, with the shadows lengthening and a near-empty Gabba filled with the sound of a smattering of raucous India supporters.
The tourists were 4-0 overnight and, for them to even get to the point where victory might be possible, Cheteshwar Pujara had to come through a barrage of hostile bowling from the Australia quicks – he was hit 10 times in his 56.
He added 114 for the second wicket with the free-scoring Gill, while stand-in captain Ajinkya Rahane, who has presided over India’s fightback, signalled their intent with 24 off only 22 balls.
Tireless Australia fast bowler Pat Cummins was a threat throughout, removing Pujara, Rahane and Rohit Sharma.