India's comprehensive victory, led brilliantly by stand-in skipper and man of the match Ajinkya Rahane, levels the four-match series at one-all.
The touring team's remarkable win comes after India scored a national-record low total of 36 in an eight-wicket loss in the first test in Adelaide just over a week ago.
Chasing a modest target of 70 to win on Tuesday after bowling Australia out for 200 in its second innings, India comfortably reached 70-2 off 15.5 overs before the tea break.
India's second innings had started poorly, losing Mayank Agarwal (5) caught behind off Mitchell Starc's bowling at 16-1. Pat Cummins made it a double strike in the following over, removing Cheteshwar Pujara (3) caught at gully.
Rahane, dropped on 19, finished unbeaten on 27 and hit the winning run, fittingly, after his first-innings century. Opener Shubman Gill completed a fine debut with scores of 45 and 35 not out.
India's pace bowler Mohammed Siraj led his side off the field at lunch after taking 2-40 and 3-37 on debut, including claiming two of the four wickets to fall in Tuesday's opening session.
Earlier, Australia's tail had wagged strongly, contributing 101 for the last four wickets after the home side had been 99-6.
Resuming on Tuesday on 133-6, Pat Cummins (22) and Cameron Green added another 23 before Cummins fended a bouncer from Jasprit Bumrah to second slip. They shared a seventh-wicket stand of 57.
Second-gamer Green, 21, scored a stylish 45 before he was caught at mid-wicket off Siraj at 177-8. Siraj continued to pitch short and removed Nathan Lyon caught behind eight runs later.
Josh Hazlewood offered no shot and was bowled by spinner Ravi Ashwin (2-71), with Starc left stranded on 14.
Australia's batting collapse on Monday came despite India's pace bowler Umesh Yadav limping off with a calf-muscle injury midway through his fourth over.
Matthew Wade scored a gritty 40 before spinner Ravindra Jadeja (2-28) trapped the opener leg before wicket at 98-4, triggering a middle-order collapse of three wickets for one run.
Australia chose to bat and scored 195 in its first innings. Rahane's 112 powered India to 326 in reply.
The four-match series is level at one-all ahead of the third test starting on January 7. The third test is scheduled to be held in Sydney, although Cricket Australia is yet to confirm this amid speculation the match may be staged in Melbourne due to the coronavirus pandemic.