Needing 287 runs to win, India resumed the day on 112-5 and was all out in a hurry for 140 in the second innings, and Australia was home for lunch.
India lost the last six wickets for 42 runs as Australia hurried to its first victory in seven test matches since March when it beat South Africa in Durban.
The No. 1 test team in the world crumbled in the face of fast bowler Mitchel Starc taking 3-46 and offspinner Nathan Lyon 3-39. They were superbly backed up by fellow fast bowlers Josh Hazlewood (2-24) and Pat Cummins (2-25).
"I am relieved personally," skipper Tim Paine said after the long awaited test win. "It's hard work ... I am really proud of the competitive and hard cricket we played."
Both teams were left battered and bruised on a pitch in which cracks were widening at Perth Stadium, the newest test venue.
India, in particular, enjoyed bowling on it, leaving the Australia batsmen ducking for cover. Opener Aaron Finch was forced to retire after taking a painful blow on his hand.
"It was a tough and bruising test," Paine added. "Both teams have outstanding fast bowling attacks.
"We have some inexperienced players in terms of test matches played. To get a win like that against the best test team in the world is going to give them a huge boost of confidence.
"The game tightened up a lot at certain stages and we stuck to our guns and delivered our skills really well under pressure."
It was an outstanding bowling effort by man-of-the-match Lyon, who claimed a match bag of 8-106 after 5-67 in the first innings to secure a crucial 43-run lead to tilt the balance in Australia's favor.
He has 17 wickets in the series. Lyon has also taken 80 wickets against India in test cricket, the second highest by a spinner.
Lyon is the joint highest wicket-taker in 2018 with 48 at an average of 26.02 in nine tests, alongside Sri Lanka offspinner Dilruwan Perera.
"Australia played better cricket and consistently," India captain Virat Kohli said. "We didn't play with the same intensity as we did in the first test match.
"We always had the belief we could do it, but they were more relentless and pitched the ball in the right area for long enough to put us in trouble."
Kohli defended his decision to play an all-seam attack by leaving out a specialist spinner.
"We never thought as a team that we needed a spin option," he said. "Nathan bowled really well on this wicket. He was able to get the maximum out of this pitch."
Kohli batted beautifully for over six hours to anchor the India first innings and scored his sixth test century in Australia.
"When you don't win you really don't rank your performance, and at the moment it's irrelevant because we didn't get the result we wanted. I want to contribute in a winning cause."
After Australia scored 326 in the first innings, India replied with 283 runs which was largely built around Kohli's 25th century in his 75th test.
Australia was then dismissed for 243 when swing bowler Mohammed Shami claimed a career-best 6-56.
Both captains played down the onfield sledging with Kohli saying, "As long as there's no swearing and personal attack it is fine. Little bit of banter is fine ... this is test cricket and it has to be competitive.
Paine added: "It what's said, and not how much that matters. We played with our skills and not on emotions."
The third starts on Dec. 26 in Melbourne.