Nicolas Hoefler stabbed the ball into his own net on the stroke of halftime to put the hosts into a lucky lead and Jefferson Farfan converted a penalty to lift Schalke to sixth place with 27 points.
Second-placed Bayer Leverkusen, who also advanced to the Champions League round of 16, slumped to a 1-0 home defeat by lowly Eintracht Frankfurt in the other game on Sunday to end their four-match winning streak.
Marco Russ headed in on the hour and despite Joselu's saved stoppage-time penalty, Frankfurt ended their run of 10 games without a win to leave Leverkusen on 37 points, seven behind leaders Bayern Munich, who beat Hamburg Sv 3-1 on Saturday.
With only one win in their previous three league games, Schalke coach Jens Keller had been under pressure but got a welcome boost in midweek when they beat Basel to advance in the Champions League.
Sunday's win may have lacked the shine and aggression of their European performance but certainly further improved his chances of staying on past the winter break.
Keller can also again count on central defender Kyriakos Papadopoulos, who made a brief substitute appearance after more than a year out with a knee injury.
Freiburg, who got off to a better start before conceding the first goal against the run of play, were furious with what they considered a harsh penalty decision for a tumble in the box by Schalke's Max Meyer. Freiburg, who have now failed to score in their last four games, remained 16th and in the relegation playoff spot.