Steffen has mostly played second fiddle to Ederson since joining from Major League Soccer side Columbus Crew in the summer of 2019.
He was sent out on loan to Fortuna Dusseldorf in Germany for the 2019/2020 season and has made 21 appearances in total during his time at Manchester City.
With the FIFA World Cup coming up in Qatar later this year, Steffen knew a lack of playing time could hamper his chances of selection for the United States of America national team.
Steffen has a contract with Manchester City that lasts until the summer of 2025.
Middles coach Chris Wilder told the club website: "I think it’s a big coup for us and so I’m delighted we’ve brought Zack in.
"We knew we had to improve the goalkeeping department. We brought in Liam Roberts and now we’re adding Zack who has just signed a four-and-a-half-year deal with Man City.
"Man City don’t hand out four-and-a-half-year contracts if they don’t think anything of them. Everyone knows his situation, he needed to play because of the World Cup.
"He had an agreement with Man City, but he could have easily stayed there and sat comfortably as their number two. He wanted to go out and he’s agreed to come here.”
The 27-year-old has won 29 caps for the USA national team.