INDIAN WELLS, Calif. — Bianca Andreescu's dream run will take the Canadian teen to the final of the BNP Paribas Open.

The 18-year-old from Mississauga, Ont., dug deep to upset No. 6 seed Elina Svitolina of Ukraine 6-3, 2-6, 6-4 in a thrilling semifinal on Friday night.

Andreescu will play the winner of the second semifinal between No. 23 seed Belinda Bencic of Switzerland and No. 8 seed Angelique Kerber of Germany in Sunday's final. Andreescu has knocked off four seeds at the tournament.

Andreescu, who started the year ranked 152nd in the world, will climb into at least the top 35 next week after yet another deep run at a WTA Tour event. The Canadian is now 27-3 on the 2019 season.

Leading 4-3 in the third set against Svitolina, Andreescu found herself down 0-40 before winning five points in a row for a huge hold.

Andreescu missed a match-point opportunity on Svitolina's serve, but then won the next game to finish it in dramatic fashion, fighting off three break points. The Canadian finally won it on the fourth match point.

Andreescu showed signs of fatigue in the third set. Andy Bettles, Svitolina's coach, told his player "She's dying physically" during the break after the fifth game of the set.

Svitolina, the 2017 Toronto Rogers Cup champion, responded with a break to tie the third set at 3-3. The players then exchanged breaks before Andreescu won two games in a row to go up 5-3.

After losing her first two service games and falling behind 3-0, Andreescu stepped up and won six games in a row to take the first set in stunning fashion.

The Canadian recorded another break to open the second set, but Svitolina bounced back in the next game with her own break and then won three more games in a row to take charge.