The former world number one, who returned to the tour in April following a 15-month doping ban, started the stronger, breaking Sabalenka in her opening service game, but struggled on serve and soon found herself trailing 4-1 in the first set.
The Russian managed to hold serve for the first time in the match at 4-2 and clung on grimly in the face of some hard hitting by her 19-year-old opponent before converting her fourth break point of the next game to get back on serve at 4-3.
Her nerves settled, Sharapova began to hit her stride, breaking Sabalenka again to go 6-5 up before closing out the set.
The Belarusian, playing her first WTA final, came back in the second set, opening up a 5-1 lead before serving to send the match into a decider, but Sharapova once again fought back to erase the deficit.
The 30-year-old broke Sabalenka twice in succession and held her nerve when facing a set point on serve at 5-4 to level things up, and broke the Belarusian to give herself the chance to serve out the match at 6-5.
But there was more drama to come. The Russian, who sent down seven aces during the contest, double faulted when facing a break point to gift Sabalenka the game and send the set into a tiebreak.
Sharapova, whose last title came at the Italian Open in May 2015, had three match points but Sabalenka survived them all before double faulting with the score at 8-8 to hand Sharapova another opportunity.
This time, the Russian made no mistake, firing down a powerful serve to seal the victory.