Uth is out of contract at Hoffenheim at the end of the current campaign and has agreed a four-year deal at the Veltins Arena, running until June 2022.
The 26-year-old striker has scored 24 Bundesliga goals for Hoffenheim since joining form Dutch side Heerenveen in 2015, with an impressive haul of nine in 16 top-flight matches this season.
"Mark Uth is currently the Bundesliga's most prolific German forward and will strengthen our attacking options even more from next summer," Schalke sporting director Christian Heidel said.
"We're delighted that we have been able to bring him to FC Schalke 04."
Uth's signing is the third piece of business completed by Schalke during the current transfer window after they secured Juventus winger Marko Pjaca on loan for the remainder of the season and signed Nurnberg forward Cedric Teuchert.