The 20-year-old, who scored 15 goals in 55 appearances for the Blades after moving from non-league Ilkeston, has agreed a three-year deal with Blues.
Birmingham had two previous bids turned down for Adams, who made his last Blades appearance as a substitute in Saturday's 1-0 defeat at Bolton.
But he has now signed to become manager Gary Rowett's third summer signing.
Adams, who has played for England at Under-20 level, will not be available for Tuesday's EFL Cup first-round tie at home to Oxford United.
Find all the latest football transfers on our dedicated page.
Birmingham City have signed Sheffield United striker Che Adams for an undisclosed fee.