Johnson - who was left stranded eight short of a second Test century earlier in the day when Australia were dismissed for 460 in reply to Sri Lanka's first-innings 156 - captured two for 16, injured two top-order batsmen and affected a run-out as the tourists were skittled for 103.
Sri Lanka had lost seven wickets midway through day three's second session but, with Prasanna Jayawardene and Chanaka Welagedara unable to bat, and Kumar Sangakkara retiring hurt on 27, the Australians were home and dry. The trouncing meant Australia retained the Warne-Muralitharan Trophy, with the third fixture in Sydney to start next week.
Johnson claimed four for 63 - including his 200th victim - in Sri Lanka's first innings before boosting his reputation as a lower-order batsman with an unbeaten 92 in Australia's reply.
Light showers delayed the start of play by 15 minutes before Australia added 20 runs for the loss of Nathan Lyon, caught at short mid-wicket for one, and Jackson Bird, comprehensively bowled by Shaminda Eranga for a duck. Eranga (three for 109) and Dhammika Prasad (three for 106) were the leading bowlers for Sri Lanka.
The visitors could not have started the rearguard action any worse as Johnson and debutant Bird (two for 29) dismantled their flaky top order. They had dramatically slumped to 13 for four midway through the morning session.
Johnson started the rot with the run-out of Dimuth Karunaratne (one) in the first over and removed Tillakaratne Dilshan (nought) the next ball when Ed Cowan pouched a catch at square leg. Bird made matters worse for the besieged tourists when he bowled Mahela Jayawardene for a duck and trapped Thilan Samaraweera lbw for one just before lunch.
Only Sangakkara (27) and Angelo Mathews (35) provided any resistance and, when the former retired hurt after copping a blow to the index finger from a Johnson bouncer, the match was in its death throes. After Johnson bowled Mathews, Peter Siddle wrapped up Australia's win by removing Eranga for a duck.
Johnson took man-of-the-match honours ahead of Australia captain Michael Clarke who scored 106 on day two.
Shane Watson was another contributor for the winners with a gutsy 83, but the all-rounder was unable to bowl in the second innings and is in doubt for the third Test after aggravating a chronic calf injury.
- Sports & Recreation
- Sri Lanka