Shaminda Eranga was out for a duck shortly after to complete Sri Lanka's capitulation.
Johnson narrowly missed his second test century when he ran out of batting partners, with Australia unable to build much on the big innings total set up by a 194-run partnership between Michael Clarke and Shane Watson on Thursday.
Resuming on 440-8, Nathan Lyon added just 1 run before offering an easy catch to substitute fielder Dinesh Chandimal at mid-wicket off Angelo Mathews in the third over of the morning.
Bird failed to get off the mark in his first test innings and was bowled by Shaminda Eranga, leaving Johnson stranded.
Clarke scored 103 for his 22nd test century and first at the Melbourne Cricket Ground, and earlier became Australia's highest-ever run scorer in a calendar year.
The Australia captain has 1,595 runs for 2012, eclipsing recently retired Ricky Ponting's previous record of 1,544 in 2005.
Watson, who has a career 18 test half centuries, fell short of his third century when he fell for 83.
Scoreboard at the end of the 2nd test:
Sri Lanka 1st Innings: 156=
Australia 1st Innings=
(Overnight: 440-8)=
Ed Cowan c Jayawardene b Prasad 36
David Warner c Prasad b Mathews 62
Phillip Hughes run out 10
Shane Watson c Samaraweera b Prasad 83
Michael Clarke c Jayawardene b Eranga 106
Michael Hussey c Herath b Dilshan 34
Matthew Wade c Eranga b Prasad 1
Mitchell Johnson not out 92
Peter Siddle c Jayawardene b Eranga 13
Nathan Lyon nc Dinesh Chandimal b Mathews 1
Jackson Bird b Eranga 0
Extras (9b, 5lb, 6w, 2nb) 22
TOTAL: (All out) 460
Overs: 134.4. Batting time: 567 minutes.
Fall of wickets: 1-95, 2-117, 3-117, 4-311, 5-313, 6-315, 7-376, 8-434, 9-451, 10-460.
Bowling: Chanaka Welegedara 14.4-6-38-0, Shaminda Eranga 27-2-109-3 (2nb, 1w), Dhammika Prasad 26-2-106-3 (1w), Angelo Mathews 16-3-60-2, Rangana Herath 39-7-95-0, Tillakaratne Dilshan 12-1-38-1.
Sri Lanka 2nd Innings=
Dimuth Karunaratne run out 1
Tillakaratne Dilshan c Cowan b Johnson 0
Kumar Sangakkara retired hurt 27
Mahela Jayawardene b Bird 0
Thilan Samaraweera lbw b Bird 1
Angelo Mathews b Johnson 35
Dhammika Prasad c Hughes b Lyon 17
Rangana Herath not out 11
Shaminda Eranga c Cowan b Siddle 0
Prasanna Jayawardene absent hurt
Chanaka Welegedara absent hurt
Extras (10lb, 1nb) 11
TOTAL: (For seven wickets, all out) 103
Overs: 24.2. Batting time: 130 minutes.
Fall of wickets: 1-1, 2-1, 3-3, 4-13, 5-74, 6-102, 7-103.
Bowling: Mitchell Johnson 8-0-16-2, Jackson Bird 9-1-29-2 (1nb), Peter Siddle 5.2-0-32-1, Nathan Lyon 2-0-16-1.
Toss: Won by Sri Lanka.
Umpires: Aleem Dar, Pakistan, and Nigel Llong, England.
TV Umpire: Tony Hill, New Zealand. Match Referee: Chris Broad, England.
Result: Australia wins by innings and 203 runs.
Series: Australia leads 2-0.