Zimbabwe shrugged off the defeat against hosts Bangladesh by edging past Sri Lanka by 12 runs in a thrilling second ODI of the tri-nation tournament in Dhaka on Wednesday.


Sri Lanka needed 16 runs off 21 balls with two wickets in hand when medium pacer Tendai Chatara picked up the all-important wicket of Thisara Perera for 64 to dramatically swing the match towards Zimbabwe.


Chasing 291 for victory, Sri Lanka were bowled out for 278 in 48.1 overs despite fighting knocks from Thisara Perera and Kusal Perera (80).


The last wicket was picked up Chatara, who ended up match figures of 4 for 33 in his 8.1 overs.


Zimbabwe batsmen Hamilton Masakadza and Sikandar Raza set up the win with half-centuries that took the team's total to 290/6 after being put into bat first.


In reply, Thisara Perera, hitting five fours and three sixes, fought a lonely battle after Sri Lanka slipped to 181/ 5, but his departure spelt doom for the islanders.


Sri Lanka captain Angelo Mathews made 42 and Dinesh Chandimal added 34 runs to show some fight after opener Kusal Perera's departure but Zimbabwe bowlers made regular breakthroughs to keep them in the contest.


Earlier, opener Masakadza gave Zimbabwe a solid start with his 73-run knock before middle-order batsman Raza added an unbeaten 81 off 67 balls -- his second successive ODI fifty.


Raza, who hit eight fours and a six during his innings, also took one wicket after opening the attack with his off- spin bowling for Zimbabwe. He was named man of the match.


Skipper and leg-spin bowler Graeme Cremer and paceman Kyle Jarvis took two wickets each to contribute to Zimbabwe's comeback win after losing the opener to Bangladesh.


It was Zimbabwe's fourth win over Sri Lanka in their last six matches. Sri Lanka now face hosts Bangladesh in the third ODI in Dhaka on Friday.