Scottish crooner Leon Jackson has won the fourth series of ITV talent search the X Factor.
Leon duetted with Kylie Minogue during the final show
"It's not real," said the stunned 18-year-old as he took the prize of a £1 million recording contract. "Thank you for everybody who voted."
Second place went to Welsh tenor Rhydian Roberts, while sibling act Same Difference came third.
More than 12 million people tuned in to see Leon take the reality show title, initial overnight figures suggest.
That beats the audience for last year's final - when 10.8 million watched Leona Lewis beat Ray Quinn.
Leon's single - a rewritten version of Mariah Carey and Whitney Houston's When You Believe - is out on Monday.
It is likely to take the coveted Christmas number one spot, following in the footsteps of the last two X Factor winners, Shayne Ward and Leona Lewis.
Leon, from Whitburn, a small former mining town in West Lothian, was a 6/1 outsider going into the final, with Rhydian the 1/3 favourite.
Scotland's First Minister Alex Salmond called the result a "fantastic victory for Leon and Scotland".
FINAL SHOW SONG CHOICES
Christmas song: O Holy Night
Duet: You Raise Me Up (with Katherine Jenkins)
Favourite song: Somewhere
Christmas song: White Christmas
Duet: Better The Devil You Know (with Kylie)
Favourite song: You Don't Know Me
Christmas song: All I Want For Christmas Is You
Duet: Any Dream Will Do (with Jason Donovan)
Favourite song: Breaking Free
Bookmaker's Ladbrokes said it was "the biggest shock in the history of reality TV betting."
"He saved us from a bumper payout," said spokesman Nick Weinberg. "He'll definitely be top of our Christmas card list."
After performing When You Believe at the end of the X Factor, Leon burst into tears.
"I decided to pursue this because I loved singing," he told host Dermot O'Leary.
"Then, as it went along, I knew I could potentially change my mum's life and I've just done it."
The singer's mentor, Dannii Minogue, said she "cannot wait to see" what Leon will do with his recording career.
Runner-up Rhydian took his loss on the chin, saying: "Some things are meant to be in life and I can't complain."
But several disappointed Rhydian fans contacted the BBC to say they had been unable to cast their vote.
"I tried to vote for over an hour and the lines were jammed," wrote Kally, from Pembrokeshire. "How is that fair?"
An ITV spokeswoman said there had been "no problems" with the voting lines, but some callers may have faced difficulty getting through due to unusually high call volumes depending on their phone provider.
Saturday's live final was launched by Same Difference, who performed Mariah Carey's All I Want For Christmas Is You surrounded by dancers dressed as Santa's elves.
Sean and Sarah Smith, aka Same Difference, hail from Portsmouth
The show also saw Jason Donovan, Kylie Minogue and opera star Katherine Jenkins duetting with the contestants.
Leon cavorted with Minogue in front of a red grand piano as the pair performed a jazzed-up version of her 1990 single Better The Devil You Know.
In addition to the duets, each contestant sang a Christmas song and their favourite number from the competition so far.
A "supergroup" made up of failed auditionees from the show's early stages also performed a version of Whitney Houston's One Moment In Time.
Same Difference, who had become popular with viewers thanks to their cheerful performances and cheesy costumes, took third place earlier in the evening.
"They are genuinely nice people and I am really gutted for them," said their mentor, Simon Cowell, after the decision was revealed.
Some of your comments...
I believe he deserved to win. He tried so hard, and finally in the end got what he deserved.
Andrew Reeves, Manchester, United Kingdom
Shocked, horrified and typical British public getting it horribly wrong again.
I think the big mistake was making the final into a Scotland versus England versus Wales affair. Rhydian had the best voice by far but all of Scotland was predictably behind Leon and voted for him. Not to mention Leon's sob story which influenced all the ' grannies' out there! The wrong person won but Rhydian should secure a far superior record deal and will certainly have longevity while Leon fades into obscurity.
To be honest, in my opinion, everyone was a winner tonight. Leon has taken the £1,000,000 record contract, and good for him, because he really did deserve to take the crown with an astonishing performance, but deep inside, I think we all know that Rhydian Roberts will have his name printed in big in London's West End soon. Well done to them all.
Joe Trigg, Cheltenham, Gloucestershire
Rhydian's number was continually engaged and when I did get through to his number I was told it was an incorrect number??? This happened at least four times. Tried all evening to ring.
Sheila Harper, Mold Flintshire
All the best to all 3 finalists - hope they all go on to have great careers in music!
Melissa , Stevenage