Although Zimbabwe's bowlers were able to restrict the Sri Lankan scoring in a slow session, Karunaratne's unbeaten 86 took his side to lunch on 177 for five, giving them an overall lead of 409.
Sri Lanka began the penultimate day of the series, which they lead 1-0, on 102 for four and found the going tough early on.
Fast bowler Chris Mpofu started his day with six straight maidens, and the tourists scored just 33 runs in 15 overs before the drinks break.
Disclaimer: No Business Standard Journalist was involved in creation of this content