Johnson also claimed 4-63 and 2-16 in a man-of-the-match performance.
Injury and form issues have meant Johnson has played only two tests in 2012.
But the former ICC International Cricketer of the Year says having a year out of the spotlight hasn't hurt his cricket.
"The time that I've had away from the game has been a really good thing for me," the 31-year-old said.
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 struck again in his third over when Thilan Samaraweera was trapped lbw at 13-4.
Johnson, who fractured wicketkeeper Prasanna Jayawardene's right thumb in Sri Lanka's first innings, struck Sangakkara on his left index finger. Sangakkara was taken to hospital for scans.
Sri Lankan skipper Mahela Jayawardene said Sangakkara would definitely miss Sydney.
"He'll be out. We've just got news he's got a compound fracture."
In his next over, Johnson hit Dhammika Prasad on the hand. Four balls later, Angelo Mathews was bowled by Johnson at 5-74. Dhammika Prasad fell to spinner Nathan Lyon and Peter Siddle removed No9 Shaminda Eranga for a duck.
Australia have their own injury troubles with Shane Watson (calf) ruled out for Sydney.
- AAP