Masakadza (111) put on a crucial 127-run partnership for the second wicket with Tarisai Musakanda (48) before Sri Lanka's bowlers struck back at the Mahinda Rajapaksa Cricket Stadium.
Masakadza's 98-ball knock, laced with 15 fours and a six, had Zimbabwe eyeing 350-plus at one point before a middle-order collapse pulled them back.
Teenage leg-spinner Wanindu Hasaranga, who took a hat-trick on his ODI debut in the second match in Galle, and paceman Asela Gunaratne grabbed two wickets each.
Sean Williams contributed with a gutsy 43 while cameos from wicketkeeper-batsman Peter Moor (24) and Sikandar Raza (25 not out) helped Zimbabwe cross the 300-run mark.
Graeme Cremer-led Zimbabwe are looking to go ahead in the five-match series after the hosts won the previous ODI on Sunday to level the series at 1-1.
(AFP – sports.yahoo.com)