A tight first set produced a number of lengthy games, with both players causing problems for their opponent as the Florida crowd witnessed five breaks of serve in the opener.
Li, who was forced to save a set point in the ninth game, made sure that a tie-break wasn't required when she broke to love to secure a 7-5 success.
Neither player was able to dominate on their serve as the second started with five consecutive breaks of serve, but Cibulkova stole the advantage by taking a 4-2 lead over Li with the first hold.
The Russian held her nerve to break the second seed once more, before serving out to level the scores.
Cibulkova started the decider confidently by breaking in the first game, but Li fought back to tie the set at 3-3 with a break of her own at a crucial stage.
The Australian Open champion edged ahead with another break in the eighth game to give herself a 5-3 lead and the opportunity to serve for the match.
Cibulkova refused to go down without a fight, saving two break points, but the 10th seed was unable to repeat the trick for the third time as Li finally secured her spot in the final.