The 21-year-old blasted 110 from 130 deliveries as his side amassed 285 for 7 in their 50 overs before dismissing Zimbabwe for just 141.
It was Tharanga’s second straight century after his 105 against Bangladesh on Saturday.
The Sri Lankan bowlers also enjoyed a good day out with paceman Lasith Malinga claiming 3 wickets for 25 runs while Dilhara Fernando and Muttiah Muralitharan snared two wickets apiece.
The good news for the Africans was that they at least surpassed their meager total of 85 which they scored on Sunday against the West Indies.
Sri Lanka will now qualify for the main tournament if the West Indies defeat Bangladesh in Jaipur on Wednesday.
The former World Cup winners will be forced to rely on net run rate should Bangladesh upset the West Indies and then the West Indies defeat Sri Lanka themselves on Friday, a string of results which would see the three sides end with two wins each.
But of immediate interest was Tharanga’s sixth one-day century which was punctuated by 13 boundaries and a six which saw his team resume control of the match after a shaky start.
A third wicket stand of 165 from just 169 balls between Tharanga and his mentor Kumar Sangakkara (80), after their side had slumped to 49-2 in the 11th over, helped the Sri Lankans to their big total.
Both batsmen were dismissed in successive overs as they looked to up the ante, but the Sri Lankans added 104 runs in the last 15 overs despite losing five wickets.
Anthony Ireland (R) dismissed
Sri Lanka elected to bat after winning the toss but were stunned when Sanath Jayasuriya was run out for nine and captain Mahela Jayawardene fell for four.
Zimbabwe put on an improved display in the field with tight bowling that was backed by sharp fielding.
The Africans cast their net far and wide employing eight bowlers, the most impressive being leg-spinner Tafadzwa Kamungozi who picked up 2 for 55 in his 10 overs.
The batting, however, failed again as Zimbabwe slid to 23 for 3 by the seventh over.
There was a minor recovery as Hamilton Masakadza and Brendan Taylor ensured Zimbabwe scored more than what they did against the West Indies by adding 63 for the fourth wicket, both batsmen making 30 apiece.
But Taylor’s dismissal in the 19th over, bowled by Fernando, triggered a collapse as three wickets fell for two runs in the space of six deliveries.
After that spell all hope was lost.