Off-spinner Ravichandran Ashwin grabbed six wickets as India stopped Australia in their tracks to win a fiery second Test and level the series 1-1 on Tuesday.
Australia, needing 188 for victory, were bowled out for just 112 half-an-hour into the final session on day four at Bangalore's M. Chinnaswamy Stadium.
Tempers frayed between the world's top two ranked sides as the hosts bounced back from a humiliating opening Test defeat in Pune.
Ashwin (6-41), who bagged his 25th five-wicket haul in his 47th Test, took the final wicket of Nathan Lyon, caught and bowled for two, sparking celebrations among the Indian players.
"After losing the first Test the way we did, we wanted to bounce back and not show anyone but ourselves what we are made of," said India skipper Virat Kohli.
"They showed the intent and the belief that we can win from any position. It was about taking responsibility. The way they showed heart and character, along with the crowd, is unbelievable."
Cheteshwar Pujara (92) and Ajinkya Rahane (52) put on a crucial 118-run partnership for India's fifth wicket before the Australian bowlers struck back in the morning session.
But the tourists faltered in their run chase to leave the series perfectly poised heading in to the third Test in Ranchi from March 16.
"This afternoon didn't go to plan," said Australia captain Steve Smith.
"Ashwin did what he's done so well over here for a very long time -- hit good areas and challenged our batters, and we weren't up to it today.
"But I'm proud of the way the boys have competed over the last four days."
Australia started their second innings briskly, scoring at over four runs an over, but were soon rattled as Ashwin got into his groove, trapping a dangerous-looking David Warner lbw for 17.
"One good thing I did was when wickets were not coming, I kept the runs down," said Ashwin.
"We just spoke inside the dressing room to bowl some short spells and keep changing over. That is why we were rotating so we could attack through such short balls," he added.
Shaun Marsh became Yadav's first lbw victim as he tried to pad away an in-swinging delivery but was given out.
The batsmen decided not to waste their single remaining review but TV replays suggested the ball would have missed the off stump by quite a distance.
It was Smith's dismissal that brought the home crowd to its feet, however, as Yadav's delivery stayed low to hit the star batsman's lower pad for lbw.
Drama followed after Smith apparently waited for a signal from the dressing room to seek a referral, something he is not allowed to do, before the on-field umpire quickly ushered him away.
India skipper Virat Kohli was angry at Smith's antics and the umpires were required to cool tempers down.
Earlier Australian pace bowler Josh Hazlewood claimed career-best figures of 6-67 to help bowl out India for 274 before lunch.