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 two-time major champion Angelique Kerber, who ended 23rd-seeded Belinda Bencic's run of upsets with a 6-4, 6-2 victory. Andreescu has knocked off four seeds at the tournament.

"This is just so incredible — this past week," Andreescu said in her on-court interview. "It's been a dream come true playing in front of amazing crowds like you guys."

WATCH | Bianca Andreescu's run continues in the desert:

The 18-year-old from Mississauga beat World No. 6 Elina Svitolina in the semifinals at Indian Wells to reach her first Premier mandatory final. 2:19

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.

Andreescu, a wild-card entry at Indian Wells, beat a top 50 player for the ninth time this year.

The teen's run is reminiscent of Naomi Osaka's path to last year's title. Little known at the time, Osaka used her Indian Wells victory as a launching pad to beating Serena Williams for the U.S. Open title and winning the Australian Open while becoming the world's top-ranked player.

Andreescu will earn $1.354 million US if she wins the final and $686,000 if she loses. Either total is well above her current career earnings of $350,909.

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.

Rally of the match!<a href="https://twitter.com/ElinaSvitolina?ref_src=twsrc%5Etfw">@ElinaSvitolina</a> outlasts Andreescu in this 30-shot encounter! <a href="https://twitter.com/hashtag/BNPPO19?src=hash&ref_src=twsrc%5Etfw">#BNPPO19</a> <a href="https://t.co/SQWOv5Rr20">pic.twitter.com/SQWOv5Rr20</a> —@WTA

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 had 36 winners to Svitolina's 14. The Canadian had 57 unforced errors, though, while Svitolina made 29.

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.