The Royal Blues will discover their Champions League last 16 opponents in Thursday's draw, but Schalke have now lost three of their last four league games with Dutch coach Huub Stevens under pressure.
"I have a contract until the end of the season and I will fulfill it," said Stevens, who took charge in September 2011. "I started here because I am a fan of this club and I don't have the feeling that I can't get more from these players."
After Peru forward Jefferson Farfan put Schalke ahead on 20 minutes, Freiburg's Jan Rosenthal equalised six minutes after taking advantage of some weak defending.
Schalke's Joel Matip then made a defensive slip to allow French midfielder Jonathan Schmid to score Freiburg's second on 32 minutes to make it 2-1 at the break.
Rosenthal netted the third, and his second of the game, on 61 minutes before he was shown two yellow cards just 62 seconds apart to be sent off after some over-zealous defending.
Schalke's Holland striker Klaas-Jan Huntelaar followed him off just a minute later for his second yellow after a foul on Freiburg captain Julian Schuster.
Earlier, Bayer Leverkusen's 3-0 win over Hamburg trimmed Bayern Munich's lead at the top of the Bundesliga table, but the Bavarian giants will still finish 2012 with a nine-point lead.
After Bayern were held 1-1 at home by Borussia Moenchengladbach on Friday, second-placed Leverkusen saw off Hamburg with striker Stefan Kiessling and current Germany forward Andre Schuerrle both netting.
Kiessling opened the scoring on 26 minutes when his close-range shot gave the Hamburg defence no chance and the hosts doubled their lead 10 minutes later when Schuerrle netted as the ball went in off the post.
Kiessling claimed his 12th goal in 17 games this season to make him the Bundesliga's top scorer when he latched onto a clearance from Bayer goalkeeper Bernd Leno and drilled home his second on 66 minutes.
It strengthens his case for a recall to the Germany squad in 2013 having last played in the 2010 World Cup third-place play-off win over Uruguay.
Leverkusen's victory denied Bayern a Bundesliga record as they had been set to break Borussia Dortmund's 10-point lead at the halfway point of the season set in 2010.
With defending champions Dortmund at strugglers Hoffenheim on Sunday, Eintracht Frankfurt took the chance to claim third spot with a 2-0 win over 10-man Wolfsburg.
Frankfurt took the lead after only 12 minutes when captain Alexander Meier scored his 11th goal of the season.
Wolves were reduced to 10 men when Brazil midfielder Josue was shown a straight red on 16 minutes for going into a challenge on Canada's Olivier Occean with his studs up.
Frankfurt took the chance to double their lead two minutes later through Japan midfielder Takashi Inui.
Mainz moved up to sixth after coming from behind to beat VfB Stuttgart 3-1 with midfielder Nicolai Mueller scoring their second-half goals before Colombia midfielder Elkin Soto grabbed the third in the 92nd minute.
Duesseldorf's Denmark midfielder Ken Ilso drilled home an 83rd minute free-kick to seal Fortuna's 2-1 win over Hanover 96.
Greuther Fuerth remain rooted to the bottom of the table after they drew 1-1 at Bavarian neighbours in a high-tension affair as both sides finished with 10 men.