Kaetlyn Osmond won Canada’s first women’s world title since 1973 after a dramatic free skate in Milan.
Olympic champion Alina Zagitova fell three times to end up in fifth place, while short program leader Carolina Kostner also finished out of the medals.
Silver went to Japan’s Wakaba Higuchi with team-mate Satoko Miyahara taking bronze.
Osmond skates to victory
What just happened !! Am I dreaming ?! Did I honestly just win worlds ?!
— Kaetlyn Osmond (@kaetlyn_23) March 24, 2018
Olympic bronze medallist Osmond was first to go of the leaders having been fourth after the short program.
Performing to Swan Lake and the soundtrack to Black Swan, the 21-year-old landed seven triple jumps in a clean routine.
She scored 150.50 points, just shy of her personal best set in PyeongChang, to give her a great chance of a medal.
Then she watched as her rivals slumped.
One who did not was Higuchi who was eighth at the midway point and almost matched her free skate score with 145.01.
Japanese champion Miyahara was third after the midway point and landed five clean triple jumps.
But the 2015 world silver medalist fell on a double salchow and her score of 135.72 saw her into third.
Tearful letdown for Zagitova
Then came a chastening experience for 15-year-old Zagitova.
The Russian started her jumps two minutes into her program, a tactic which served her so well in PyeongChang.
But Zagitova fell on a straight lutz, missed a combination, and then fell on a another combination.
The crowd clapped in rhythm to the music from Don Quixote to spur her on but another fall left her out of the medals.
Zagitova’s free skate score of 128.21 was 28 points below her Korea performance.
She collapsed in tears as she left the ice, falling into the arms of coach Eteri Tutberidze.
That left just Kostner to go in front of her home crowd.
The 2012 world champion looked nervous in what was probably her last competition.
And the 31-year-old failed to produce the clean run she needed.
A fall on a triple salchow and a single axel instead of a double saw her move above Zagitova but not either of the Japanese.
Kostner admitted, “This fourth has a bitter taste.”
Osmond’s total of 223.23 was almost eight points below her score in PyeongChang, but good enough for gold in Milan.
The stunned 22-year-old confessed, “I was fighting to skate clean and fighting to hit the podium. Being world champion is not something I ever expected.”