The 19-year-old was out of contract with the Hoops at the end last season but completed a move to the English Championship side after a the clubs agreed a compensation fee.
Johnstone has six caps for the Scotland Under-19 side and was a key member of Celtic's youth team in the NextGen series last season.
"Negotiations with Celtic have been long but we got there in the end," Birmingham boss Lee Clark said.
"The board have backed me because I feel the boy can offer future value to the squad.
"Denny was highly-thought of by Celtic and they wanted to keep him but the boy wanted to move on.
"Two unnamed Scottish Premier League clubs also wanted to bring him in as their number one striker, while opponents he faced playing for Celtic in The NextGen Series also expressed an interest off the back of his performances.
"Having Alan Thompson [the former Celtic coach] on board has helped to smooth the move.
"I think Denny will give us something different to the other strikers we have at the club.
"He's very competitive and can hold the ball up well but he's also got terrific movement in and around the box.
"We have high hopes for Denny."