Jodie Prenger has won the final of I'd Do Anything to play Nancy in the upcoming production of Oliver! in the West End.
The 28-year-old from Blackpool beat fellow finalist Jessie Buckley, 18, in a telephone vote on last night's finale on BBC1.
The third finalist, Samantha Barks, was voted off in an earlier telephone poll.
Both sang As Long As He Needs Me in a head-to-head contest, then Jodie went on to perform Whitney Houston's I Have Nothing while Jessie sang Ella Fitzgerald's The Man That Got Away.
Both contenders dressed in red for the final round.
On winning the role, Jodie said: "All you guys, thank you so much from the bottom of my heart. I'm just so chuffed."
The judges disagreed on their choice of Nancy, with Andrew Lloyd Webber, musicals producer Cameron Macintosh, and Barry Humphries preferring Jessie while Torchwood star John Barrowman and singer and presenter Denise Van Outen revealed they were split down the middle.
Lloyd Webber said afterwards: "It was always going to be the people's choice."
The BBC show started with 12 Nancys, and winner Jodie will now go through six months of training before taking the stage for the production.
The show also found three actors to play Oliver for the musical.
I'd Do Anything is the third show to find a musical star, following How Do You Solve a Problem Like Maria? and Any Dream Will Do. Lloyd Webber has said he would not rule out another similar series but is now working on a sequel to the Phantom Of The Opera for next year.