Chelsea edged closer to the knockout stages of the Uefa Champions League, but were given a real scare by Schalke.
Chelsea captain Frank Lampard shows his frustration
With Rosenborg beating Valencia, victory in Gelsenkirchen would have been enough to seal Chelsea's passage.
But a strangely ragged Chelsea defence saw Heiko Westermann go close on three occasions before Petr Cech limped off with a calf strain at half-time.
Sub keeper Carlo Cudicini was twice rescued by his woodwork as Rafinha and Peter Lovenkrands went close late on.
Chelsea came into the game knowing that an eighth successive victory under Avram Grant could prove to be enough to seal their qualification for the knockout stages.
On the back of their 2-0 win over the German side a fortnight ago, and with Schalke ravaged by injuries for the return tie, the Blues would have been confident of further progress.
But it was the home side who started stronger, Ivan Rakitic and Marcelo Bordon both offered chances from the edge of the box as Chelsea needlessly conceded free-kicks in dangerous areas.
In between, Didier Drogba was brilliantly denied by young Schalke keeper Manuel Neuer, who had been left red-faced by an early blunder which gifted Florent Malouda an opener at Stamford Bridge.
The highly-rated youngster was clearly intent on not making the same mistake again, though in truth Chelsea barely tested him in the early exchanges.
Instead, it was the injury-hit home side who posed most of the questions, prompted by the busy Westermann.
Better known as a defender, Westermann was pushed into midfield and revelled in his advanced position.
On 19 minutes, he raced past Juliano Belleti and hit a shot that bounced in front of Cech and forced the keeper to palm the effort around his post. From the corner, Soren Larsen got ahead of Alex and fired into the side netting.
Then, four minutes later, Westermann again outstripped Belleti and forced Cech into action once more with another fierce drive.
Once again, the ensuing corner caused problems as Drogba was outjumped by central defender Bordon, who thumped a free header over the bar when he should have done better.
Cech receives treatment for his first-half injury
Cech looked uncomfortable amid the onslaught and the reason soon became apparent.
After his flap at a corner allowed Westermann a simple chance that forced Belleti into a goal-line clearance, Cech underwent lengthy treatment to an apparent calf injury and it was no surprise when he failed to come back out for the second half.
Cudicini replaced him for the second half but, by then, Chelsea could have eased Cech's pain by taking an undeserved half-time lead.
Brilliant work by Joe Cole in the middle created an opening for Drogba, who set himself well but saw his shot thud against the chest of a defiant Neuer.
With Group B surprise package Rosenborg leading in Valencia, Chelsea were effectively a single goal away from qualification.
But, having survived the earlier onslaught of the hard-working home side, Chelsea simply appeared happy to take the sting out of the game as Schalke began to tire.
And Grant's side had another huge escape 17 minutes from time when Rafinha's cute chip beat Cudicini but bounced off the crossbar.
They were even more fortunate in the dying moments when substitute Lovenkrands sprinted clear down the left and hit a low drive which beat Cudicini and smacked against the inside of the far post before being scrambled clear.
Chelsea manager Avram Grant:
"It was not a bad result but not our best game.
"After so many good games in a short time we can have one game that is not in the high level. It is also an away game against a team who feel very good playing at home.
"How bad Petr Cech's calf injury is, we need to wait and see. I asked the doctor if he could continue but he couldn't. But Carlo Cudicini came on and played well."
Schalke 04: Neuer, Rafinha, Bordon, Krstajic, Westermann, Jones, Bajramovic, Asamoah, Rakitic, Ozil (Lovenkrands 60), Larsen.
Subs not used: Schober, Grossmuller, Howedes, Azaouagh.
Chelsea: Cech (Cudicini 46), Belletti (Obi 64), Alex, Carvalho, Bridge, Essien, Makelele, Lampard, Joe Cole, Malouda (Wright-Phillips 78), Drogba.
Subs not used: Shevchenko, Pizarro, Kalou, Ben-Haim.
Referee: Massimo Busacca (Switzerland).