The Championship club accepted an undisclosed fee from the Potters for the 19-year-old, with the keeper set to stay at Birmingham on loan until the end of the season.
Butland had earlier rejected talks with Chelsea because of his desire to play regular first-team football and had also been linked with Liverpool, Fulham, Newcastle and Manchester City in this window.
He said: "It's been an incredible day – a very exciting one, but I'm glad it's finished. I love playing and I don't want to sit on the bench. For me, it was important I went to a club where I can play and develop my game."
Butland joined the Birmingham academy aged 14 and made his first-team breakthrough this season following a successful loan at Cheltenham.
His rise through the ranks also saw him become England's youngest ever goalkeeper when he won his first senior cap in a friendly against Italy last August.
Both Everton and Southampton tried to sign the talented teenager last summer after he was called up to the England squad for Euro 2012 after third-choice goalkeeper John Ruddy broke his finger.
However, Birmingham's parlous financial state forced them to cash in on their prize asset.