TORONTO -- Belinda Bencic stunned top-seeded Serena Williams 3-6, 7-5, 6-4 on Saturday night to advance to the women's final at the Rogers Cup.

The Swiss teenager took advantage of several uncharacteristic errors from the veteran American, who struggled with her serve most of the evening. It was just the second loss of the season for Williams, who fell to 43-2 on the year.

Bencic put her hands to her face after clinching the victory and cried tears of joy as fireworks went off outside Aviva Centre.

The unseeded world No. 20 knocked off three seeded players en route to her first career appearance in a Premier-5 Level event. The 18-year-old opened with a victory over Canada's Eugenie Bouchard and followed with wins over fourth-seeded Caroline Wozniacki, Sabine Lisicki and fifth-seeded Ana Ivanovic.

She needed two hours 28 minutes to complete the biggest win of her career.

Bencic will play second-seeded Simona Halep in Sunday's final at the US$2.51-million tournament. Halep beat Italy's Sara Errani 6-4, 6-4 in the other semifinal.

Williams, 33, has won four tournaments this season -- including three Grand Slams -- and appeared to be in form over her first three victories this week. But 30 unforced errors and an erratic first serve did her in against the WTA 2014 Newcomer of the Year.

Bencic, who won her first career title this year at Eastbourne, became the youngest player to beat Williams in a completed match since a 17-year-old Maria Sharapova beat her at the 2004 WTA Finals.

Halep, meanwhile, will appear in the Rogers Cup final for the first time and is looking for her fourth crown of the year. The 23-year-old has won 11 WTA titles over her career.

The second-seeded Romanian needed 95 minutes to complete her semifinal victory on a hot, sunny afternoon. She took over a month off after a first-round loss at Wimbledon and feels energized since her return.

"I've had a great week," Halep said. "And you know, when you come to the tournaments without expectations, you are more relaxed and you have to play without pressure, play (like) during the practices and just trying to play your best every match.

"So I did this and I don't know how I'm in the finals, to be honest. But it's nice and I have just enjoyed (it)."

Halep got a boost from a large group of vocal, flag-waving Romanian fans on Centre Court. She had a 26-9 edge in winners over the 15th-seeded Italian and her consistency paid off.

Both players seemed content to pound it out from the baseline. Errani has tremendous retrieval skills but her spin-heavy serve lacks power and Halep took advantage.

On occasion, Errani's second serve dipped as low as 96 kilometres per hour. That gave Halep plenty of time to position herself and deliver powerful returns.

Down 3-4 in the second set, the Italian played a more aggressive style and forced a double-break point. Halep fought back to deuce but double-faulted on another break point to put the set back on serve.

However, Errani couldn't generate any momentum after the break. She floated a serve at 30-30 that Halep put away and the Romanian broke back before serving out for the match.

Halep, who was wilting in the early afternoon heat, dropped to her knees in relief after converting match point.

"I was tired," she said. "A set and 4-2 (up), I had no more power. But you know sometimes if you push yourself more and you stay there to fight for every ball, you can finish it."

In the early doubles semifinal, third-seeded American Bethanie Mattek-Sands and Lucie Safarova of the Czech Republic posted a 6-4, 7-6 (5) win over Kristina Mladenovic of France and Karolina Pliskova of the Czech Republic.

Top-seeded Martina Hingis of Switzerland and Sania Mirza of India were scheduled to play fourth-seeded Caroline Garcia of France and Katarina Srebotnik of Slovenia in the late doubles semifinal.

Notes: Former WTA star Justine Henin -- a two-time Rogers Cup champion -- was inducted in the Rogers Cup Hall of Fame on Saturday evening. ... Bencic rose 179 positions in the world rankings last year to finish the season at No. 33.