Australia's James Faulkner claimed his maiden hat-trick but could not deny Sri Lanka a series-levelling 82-run victory in the second one-day international on Wednesday.
Faulkner dismissed Kusal Perera, Angelo Mathews and Thisara Perera to achieve the feat but ended up on the losing side as Australia, chasing 289 for win, were all out for 206 in 47.2 overs.
Matthew Wade top-scored for the touring side with a fighting 76 but Sri Lanka's biggest win over Australia in terms of runs means the teams move to Dambulla for Sunday's third one-dayer with the five-match series level at 1-1.
Australia needed a strong start to chase down such a big total but Thisara Perera (3-33) dismissed openers David Warner and Aaron Finch to reduce the tourists to 16 for two.
Skipper Steve Smith (30) rekindled Australia's hopes of a fightback and Wade showed tremendous grit down the order but it was not enough to complete what would have been a record chase at the ground.
Left-arm spinner Amila Aponso was the pick of the Sri Lankan bowler, claiming 4-18 in his second one-day international.
Sri Lanka posted 288 before being all out in the 49th over, losing their last five wickets for 27 runs.
After opting to bat, Sri Lanka lost openers Danushka Gunathilaka and Tillakaratne Dilshan off successive deliveries inside the first 19 balls.
Kusal Mendis (69) and Dinesh Chandimal (48) revived the hosts with a 125-run stand.
Mendis cruised to his second successive fifty but Adam Zampa (3-42) dismissed both batsmen.
Kusal Perera (54) added 103 runs with skipper Mathews (57) to consolidate Sri Lanka's position but Faulkner and Mitchell Starc (3-53) ripped out the lower order.
Faulkner trapped Perera lbw with the final delivery of his eighth over.
The all-rounder dismissed Mathews with the first ball of his next over, caught at long-off, and bowled Thisara Perera with his next to become the sixth Australian cricketer to claim a one-day hat-trick.
Sri Lanka registered a convincing 82-run victory over Australia in the second ODI to level the 5-match series 1-1 at the Premadasa stadium on Wednesday.
Mathew Wade waged a lone battle for the visitors with a fighting 76 while Travis Head gave him company with 31 but it was too late as the top order collapsed against some disciplined bowling led by Amila Aponso (4 for 18), captain Angelo Mathews (2 for 17) and Thisara Perera (3 for 33).
Earlier, James Faulkner bagged a hat-trick of wickets but could not stop captain Angelo Mathews, Kusal Mendis and Kusal Perera from notching half centuries to lift Sri Lanka to 288.
Aponso bags his fourth victim.
James Faulkner lbw b Aponso 13 (19b 1x4)
Aponso strikes to get his third wicket.
Adam Zampa c Dilshan b Aponso 5 (16b)
Wickets are falling in a heap as Lanka inch closer to victory with Mathews taking another wicket.
Mitchell Starc c & b Mathews 0 (1b)
Angelo Mathews claims his 50th wicket at home.
Travis Head c Dilshan b Mathews 31 (48b 3x4)
A fighting knock from Wade comes to an end after he miscues a shot from Thisara. Aus 182-6, 40 overs. SL were 212-5.
Matthew Wade c Gunathilaka b Perera 76 (88b 3x4)
Wade and Head keep Aussies in the chase with a 50-run partnership.
ustralia are 156-5 after 35 overs. SL were 181-5.
Wade is waging a lone battle for the Aussies with a fighting 50. Aus 136-5, 31 overs.
After 30 overs Australia are 132 for 5. Lanka were 157 for 4.
Prasanna finally got his victim Henriques after breaching his defence time and again. Aus 118-5, 28 overs.
Moises Henriques st Chandimal b Prasanna 4 (16b)
Australia are 111 for 4 after 25 overs. Lanka were 141 for 3.
Sri Lanka get the breakthrough they wanted when Bailey missed and Aponso struck.
George Bailey b Aponso 27 (46b)
Wade and Bailey take Australia to 87-3 in 20 overs. SL were 105-2 at same stage.
Australia are 68-3 after 15 overs. Lanka were 78-2.
Amila Aponso strikes with his second delivery, forcing Smith to step out only to hand Perera an easy catch at mid-on. Aus 42-3, 10 overs.
Steven Smith c Perera b Aponso 30 (33b 5x4)
Thisara Perera gets the inside edge of Finch to send the middle stump back. Aus 18-2, 4 overs.
Aaron Finch b Thisara Perera 4 (7b)
Sri Lanka have struck early with Thisara Perera getting Warner to edge to Chandimal. Aus 13-1, 2 overs.
David Warner c Chandimal b Perera 1 (4b)
David Warner and Aaron Finch are out in the middle.
Sri Lanka innings
All-rounder James Faulkner became the sixth Australian cricketer to claim a hat-trick in one-day internationals, achieving the feat in the second match against Sri Lanka on Wednesday.
The 26-year-old left-arm bowler got his first wicket when he trapped Kusal Perera leg-before with the final delivery of his eighth over.
He returned to dismiss Angelo Mathews with the first delivery of his ninth over, getting the rival captain caught at long-off, and bowled Thisara Perera with his next ball to complete the hat-trick.
Faulkner, whose 4-38 in the first one-dayer earned him the man-of-the-match award and helped Australia take a 1-0 lead in the five-match series, finished with figures of 3-45.
Half centuries from captain Angelo Mathews, Kusal Mendis and Kusal Perera lifted Sri Lanka to 288 all out against Australia in the second ODI at the R Premadasa ground in Colombo on Wednesday.
Adam Zampa, James Faulkner and Mitchell Starc claimed three wickets each to pull back the hosts who were cruising at one stage at 258 for 5 only to lose their last five wickets for just 30 runs.
Starc did well to pull things back for Australia.
Amila Aponso b Starc 2 (4b)
Starc is spot on sending Dilruwan's off-stump behind.
Dilruwan Perera b Starc 5 (4b 1x4)
Perera tries to chip Faulkkner through slips and misses.. SL 286-8, 48 overs.
Thisara Perera b Faulkner 12 (6b 1x4 1x6)
Mathews tries to hoist Faulkner outside the ground but holes out to Henriques.
Angelo Mathews c Henriques b Faulkner 57 (60b 1x4 2x6)
Thisara Perera has unsettled Henriques with a six and two fours. SL 279-6, 47 overs.
Perera tries a reverse sweep and is struck on the pads. SL 261-6, 46 overs.
Kusal Perera lbw b Faulkner 54 (53b 5x4 1x6)
Mathews and Perera raise 100-run partnership.
Perera and Mathews are using the long handle as runs keep coming thick and fast. SL 242-5, 44 overs.
DROPPED! Kusal Perera top-edges to Zampa who drops a sitter. SL226-5, 42 overs.
Mathews pulls Lyon over the ropes on two occasions to bring the crowd on its feet. He and Perera bring up the 50-run partnership. The hosts need a few more of these as they enter into the last 10 overs. SL 212-5, 40 overs.
Angelo Mathews and Kusal Perera have steadied the innings. SL 184-5, 36 overs.
SL 170-5, 33 overs.
Zampa strikes for his third wicket forcing De Silva to find Smith at cover who took a low, brilliant catch. SL 158-5, 31 overs.
Dhanajaya de Silva c Smith b Zampa 7 (10b 1x4)
Adam Zampa strikes again, completely deceiving Mendis with a googly.SL 146-4, 27 overs.
Kusal Mendis lbw b Zampa 69 (69b 9x4 0x6)
Chandimal steps out and misses and in the bargain Wade too fails to collect and go for a stumping. But the wicketkeeper appeals for an LBW and after a lot of deliberation from the third umpire Chandimal is given out SL 41-3, 25 overs.
Dinesh Chandimal lbw b Zampa 48 (67b 2x4 1x6)
Chandimal hits Head to the boundary to bring up the 100-run partnership with Mendis.
Mendis gets to his 5th ODI 50 and his second consecutive but two balls later survived playing onto his wicket. SL 105-2, 20 overs.
The Lankans are making slow progress. The hosts are 93-2 after 18 overs.
A mix-up between Mendis and Chandimal could have resulted in a run-out but Smith after some brilliant fielding missed hitting the stumps at the non-striker's end. SL 90-2, 17 overs.
Kusal Mendis and Dinesh Chandimal have powered the Lankans to 59 for two after 10 overs.
Sri Lanka lose two in two as Lyon as Dilshan is bowled off his pads. SL 12-2, 3.1 overs.
Tillakaratne Dilshan b Lyon 10 (11b 2x4)
Starc draws first blood castling Gunathilaka. SL 12-1, 3 overs.
Danushka Gunathilaka b Starc 2 (8b)
Dilshan gets going cracking two consecutive boundaries off Starc.
Sri Lankan skipper Angelo Mathews won the toss and elected to bat first against Australia in the second one-day international in Colombo on Wednesday.
The hosts, who are trailing the five-match series 1-0, made two changes from Sunday's series opener. Seekkuge Prasanna and Danushka Gunathilaka came in for Lakshan Sandakan and Milinda Siriwardana.
Sri Lanka's pace spearhead Nuwan Pradeep, who missed the last two Tests against Australia with an injured hamstring, has been ruled out for the ODIs as well.
Australia skipper Steve Smith has opted for off-spinner Nathan Lyon in the starting XI in place of medium-pacer Josh Hazlewood.
Sri Lanka: Angelo Mathews (capt), Kusal Perera, Tillakaratne Dilshan, Kusal Mendis, Dinesh Chandimal, Dhananjaya de Silva, Thisara Perera, Dilruwan Perera, Danushka Gunathilaka, Amila Aponso, Seekkuge Prasanna
Australia: Steve Smith (capt), David Warner, Aaron Finch, George Bailey, Moises Henriques, Travis Head, Matthew Wade, James Faulkner, Mitchell Starc, Adam Zampa, Nathan Lyon
Umpires: Michael Gough (ENG) and Raveendra Wimalasiri (SRI)
TV Umpire: Aleem Dar (PAK)
Match Referee: Javagal Srinath (IND)
Reserve Umpire: Ranmore Martinesz (SRI)