The 21-year-old left-hander followed his 105 against Bangladesh on Saturday with 110 as Sri Lanka piled up 285-7 in their 50 overs and then bowled out lowly Zimbabwe for 141.
Sri Lanka will learn on Wednesday, when the West Indies take on Bangladesh in Jaipur, if they will advance to the main tournament starting on October 15 without resorting to mathematical calculations.
A West Indian win will put both Sri Lanka and Brian Lara's men through to the next round against Australia, India, Pakistan, South Africa, New Zealand and England.
A three-way tie will happen only if Bangladesh create an upset on Wednesday and the West Indies beat Sri Lanka in Mumbai on Friday to give all three teams two wins each.
Tharanga's sixth one-day century from 31 matches was studded with 13 boundaries and a six that helped his team recover from a shaky start.
Tharanga put on 165 in 169 balls for the third wicket with his mentor Kumar Sangakkara (80) after Sri Lanka were struggling at 49-2 in the 11th over.
Both batsmen departed in successive overs attempting to force the pace, but Sri Lanka added 104 runs in the last 15 overs despite losing five wickets.
Tharanga made his international debut eight months after his home in Sri Lanka's west coast fishing town of Ambalangoda was swept away by the deadly tsunami which killed thousands across Asia on December 26, 2004.
Tharanga shifted base to Colombo where Sangakkara sheltered the talented youngster and gave him his entire cricket kit.
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 employed eight bowlers, the most impressive being leg-spinner Tafadzwa Kamungozi who picked up two for 55 in his 10 overs.
The batting, however, faltered again as Zimbabwe slid to 23-3 by the seventh over.
Malinga dismissed Tafadzwa Mufambisi and Chamunorwa Chibhabha after left-arm seamer Richira Perera had clean bowled Piet Rinke in the second over.
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.
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.
Masakadza edged Farveez Maharoof to wicket-keeper Sangakkara and Elton Chigumbura was run out off a no-ball while going for a needless third run.