You are not permitted to download, save or email this image. Visit image gallery to purchase the image.
The tourists will count the cost of a bruising encounter at the MCG which included master batsman Kumar Sangakkara retiring hurt on 27 with a suspected broken finger.
Needing 304 to make Australia bat a second time, Sri Lanka were bowled out for 103 in 24.2 overs with two players absent hurt, plus Sangakkara who retired hurt.
Australia had resumed on Friday on 8-440 and were dismissed for 460. Johnson was left stranded on 92 not out, eight runs shy of his second Test hundred.
Johnson also claimed 4-63 and 2-16 in a man-of-the-match performance.
Sri Lanka lost 3-3 in the opening two overs of their second innings in an embarrassing collapse.
Dimuth Karunaratne was run out for one and Tillakaratne Dilshan was caught at short leg off the bowling of Johnson for a first-ball duck.
Skipper Mahela Jayawardene also made a duck after inside-edging a rising delivery from debutant Jackson Bird onto his stumps.
Sri Lanka equalled their worst three-down score after also being 3-3 against England in 2001.
Bird (2-29) struck again in his third over when Thilan Samaraweera (one) was trapped lbw at 4-13.
Johnson, who fractured wicketkeeper Prasanna Jayawardene's right thumb in Sri Lanka's first innings, struck Sangakkara on his left index finger on Friday. Sangakkara was taken to hospital for scans.
In his next over, Johnson hit Dhammika Prasad on the hand and the batsman had a long on-field discussion with medical staff before batting on.
Four balls later, Angelo Mathews (35) was out to a loose shot for the second time in the match, this time bowled by Johnson at 5-74.
Dhammika Prasad (17) fell to spinner Nathan Lyon and Peter Siddle removed No.9 Shaminda Eranga for a duck.
Prasanna Jaywardene and No.11 Chanaka Welegedara (hamstring) both didn't bat in Sri Lanka's second innings.
Australia have their own injury troubles with Shane Watson (calf) not bowling on Friday and in doubt for Sydney.