The Italian, 44, succeeds Jens Keller following the Bundesliga club’s inconsistent start to the season.
Schalke are 11th in the league with eight points from seven games, having won just twice.
They are third in their Champions League group after two draws, including holding Chelsea 1-1 at Stamford Bridge.
Di Matteo is set to face his former club when the two teams play the reverse fixture in Germany on 25 November.
Keller had been in charge of Schalke since December 2012, and after being knocked out of the German Cup by third tier SG Dynamo Dresden earlier this season, his last game was a 2-1 defeat by Hoffenheim last Saturday.
“With the change in coach we want to give a new impulse,” said Schalke sports director Horst Heldt in a statement.
“We are absolutely convinced that Roberto Di Matteo can stabilise the team so as to reach its Bundesliga and Champions League goals.
“We are missing the necessary consistency to meet our targets. This is why we took this step.
“The performance of the team in the past few weeks has fluctuated.”
This is Di Matteo’s first job since being dismissed by Chelsea in November 2012.
His success earned him a permanent deal but when he struggled in the following campaign his reign was brought to an end.courtesy:bbc.