Galatasaray reached the quarter-finals of the Champions League with a thrilling 3-2 victory in Germany.
After a 1-1 draw in the first leg, Roman Neustadter prodded Schalke into an early lead from a corner.
But Galatasaray hit back with two goals in five minutes - a 25-yard strike from ex-Schalke midfielder Hamit Altintop and a cool finish from Burak Yilmaz.
Michel Bastos levelled in the second half to give Schalke hope before Umut Bulut's late winner on the break.
The result means Galatasaray have reached the last eight for the first time in 12 years and are the first Turkish side to do so in five years.
Galatasaray included former Champions League winners Wesley Sneijder and Didier Drogba in their starting line-up.
Indeed, Drogba's last Champions League goal came in Germany from the spot in a penalty shootout as Chelsea clinched victory in last year's final against Bayern Munich.
And the Ivorian started in menacing form with two quick-fire shots - the second beaten away by Schalke goalkeeper Timo Hildebrand.
But it was the home side who took a 17-minute lead against the run of play when Galatasaray failed to clear a corner and Neustadter reacted first to steer the ball into the net.
The visitors were level 20 minutes later when Selcuk Inan rolled a short free-kick to Altintop and he hit a fierce dipping drive from 25 yards that crashed in off the inside of the post.
And Fatih Terim's side were ahead when Albert Riera pinched the ball in his own half and quickly released Yilmaz.
The powerful striker shrugged off the challenge of Benedikt Howedes before cleverly lifting the ball over Hildebrand for his eighth Champions League goal in eight games.
The goal silenced the normally buoyant Gelsenkirchen crowd but, despite needing two goals to progress, Jens Keller's side looked determined to give it their all in the second half.
Marco Hoger cracked the crossbar from the edge of the box moments before Bastos levelled in the 63rd minute.
Galatasaray failed to clear the ball from their box and Japanese international Atsuto Uchida kept his cool to square for the Brazilian to finish into an empty net.
Julian Draxler and Teemu Pukki had half chances to pinch a winner for Schalke but the Turkish defence held firm.
And they snatched a winner of their own on the night in injury time when substitute Bulut beat the offside trap before putting the ball past Hildebrand at the second attempt.
Galatasaray coach Fatih Terim:
"Now we're among the best eight teams in Europe. All Turkey and Galatasaray fans should enjoy this success.
"I want to congratulate all my players - I will hug and kiss them all. Players sometimes known for their limited movement and tackling ability were transformed in this game and fought for the team on the pitch.
"We played like an excellent European team in the first half."
Schalke coach Jens Keller:
"I have no explanation for the first-half performance. We played like we were doing a couple of weeks ago, without the necessary aggression, and everyone put in maybe 10% less than what was needed.
"You must not forget that some of our players were sidelined today.
"The second half was really strong and there is no reason to be depressed now."
Live Text Commentary
Full Time The game is over, as the referee blows his whistle.90:00 +4:44
Julian Draxler delivers the ball.90:00 +4:41 Goal scored
Goal! - Umut Bulut - Schalke 04 2 - 3 Galatasa'y Goal scored by Umut Bulut from deep inside the penalty box low into the middle of the goal. Schalke 04 2 (3)-(4) 3 Galatasaray.90:00 +4:40
Umut Bulut takes a shot. Timo Hildebrand makes a save.90:00 +3:38
Emmanuel Eboue takes the direct free kick.90:00 +3:38 Booking
Booking Caution for Sead Kolasinac.90:00 +3:33
Free kick awarded for a foul by Sead Kolasinac on Didier Drogba.90:00 +3:15
Sead Kolasinac sends in a cross, Fernando Muslera makes a save.90:00 +1:50
Unfair challenge on Dany Nounkeu by Christian Fuchs results in a free kick. Fernando Muslera takes the free kick.90:00 +1:28
Christian Fuchs crosses the ball.90:00 +0:44
Jefferson Farfan delivers the ball, Fernandes Michel Bastos takes a shot. Fernando Muslera makes a save.90:00 +0:09
Inswinging corner taken by Julian Draxler, Emmanuel Eboue makes a clearance.89:56
Christian Fuchs produces a left-footed shot from just outside the penalty box that misses to the left of the target.89:02
The offside flag is raised against Umut Bulut. Indirect free kick taken by Timo Hildebrand.88:10
Free kick awarded for an unfair challenge on Atsuto Uchida by Hamit Altintop. The free kick is swung in right-footed by Jefferson Farfan, clearance by Albert Riera.85:57 Substitution
Substitution Max Meyer joins the action as a substitute, replacing Marco Hoger.84:17
Joel Matip takes the free kick.84:17 Substitution
Substitution Umut Bulut comes on in place of Burak Yilmaz.84:17 Substitution
Substitution (Schalke 04) makes a substitution, with Chinedu Obasi Ogbuke coming on for Teemu Pukki.84:17 Booking
Booking Booking for Didier Drogba for unsporting behaviour.
Didier Drogba gives away a free kick for an unfair challenge on Sead Kolasinac.83:44
Nordin Amrabat takes a shot. Save by Timo Hildebrand.77:51 Substitution
Substitution Gokhan Zan on for Semih Kaya.74:34
Unfair challenge on Jefferson Farfan by Albert Riera results in a free kick. Jefferson Farfan crosses the ball, Headed effort from inside the box by Benedikt Howedes misses to the right of the target.72:46
Christian Fuchs takes a outswinging corner.72:35
Fernandes Michel Bastos has an effort at goal from just outside the penalty box which goes wide of the left-hand post.72:01
Foul by Jefferson Farfan on Albert Riera, free kick awarded. Free kick taken by Fernando Muslera.69:26 Substitution
Substitution Wesley Sneijder goes off and Nordin Amrabat comes on.68:31
Outswinging corner taken from the right by-line by Jefferson Farfan, Dany Nounkeu makes a clearance.66:15
Atsuto Uchida crosses the ball, comfortable save by Fernando Muslera.66:00
Julian Draxler takes a shot. Save by Fernando Muslera.65:44
The official flags Burak Yilmaz offside. Free kick taken by Joel Matip.65:16
Foul by Didier Drogba on Benedikt Howedes, free kick awarded. Direct free kick taken by Benedikt Howedes.64:33
Wesley Sneijder has an effort at goal from just outside the box which goes wide of the left-hand upright.62:27
Assist by Atsuto Uchida.62:27 Goal scored
Goal! - Fernandes Michel Bastos - Schalke 04 2 - 2 Galatasa'y Fernandes Michel Bastos scores a goal from inside the six-yard box high into the middle of the goal. Schalke 04 2 (3)-(3) 2 Galatasaray.62:20
Marco Hoger takes a shot.60:40
Julian Draxler has an effort at goal from just inside the box that misses to the left of the target.58:53
Free kick awarded for a foul by Fernandes Michel Bastos on Semih Kaya. Fernando Muslera takes the free kick.57:33
Teemu Pukki takes a shot. Dany Nounkeu gets a block in.57:00
Outswinging corner taken from the left by-line by Christian Fuchs.55:42
Jefferson Farfan takes the outswinging corner, Selcuk Inan manages to make a clearance.55:03
Shot from 18 yards from Teemu Pukki. Save made by Fernando Muslera.54:37
Shot by Julian Draxler from 20 yards. Blocked by Dany Nounkeu.53:05
Effort from the edge of the box by Teemu Pukki goes wide of the right-hand upright.52:14
Corner taken by Selcuk Inan.51:54
Burak Yilmaz takes a shot. Timo Hildebrand makes a save.48:38
The assistant referee signals for offside against Burak Yilmaz. Benedikt Howedes restarts play with the free kick.48:06
Marco Hoger concedes a free kick for a foul on Didier Drogba. Didier Drogba takes the free kick.46:40
Burak Yilmaz challenges Benedikt Howedes unfairly and gives away a free kick. Benedikt Howedes takes the direct free kick.45:59
Inswinging corner taken right-footed by Julian Draxler from the left by-line to the near post, Hamit Altintop manages to make a clearance.45:01
The referee gets the second half started.45:01 Substitution
Substitution Christian Fuchs replaces Roman Neustadter.45:00 +2:30 Half time
Half Time The ref blows to end the first period.45:00 +2:01
Inswinging corner taken right-footed by Julian Draxler, Fernando Muslera makes a save.45:00 +0:25
Fernandes Michel Bastos takes the chance to get an effort at goal. Save by Fernando Muslera.41:34 Goal scored
Goal! - Burak Yilmaz - Schalke 04 1 - 2 Galatasa'y Burak Yilmaz grabs a goal from the edge of the area to the top right corner of the goal. Schalke 04 1 (2)-(3) 2 Galatasaray.39:24
De Carvalho Felipe Melo challenges Marco Hoger unfairly and gives away a free kick. Free kick crossed right-footed by Jefferson Farfan.36:36
Assist by Selcuk Inan.36:36 Goal scored
Goal! - Hamit Altintop - Schalke 04 1 - 1 Galatasa'y Hamit Altintop finds the back of the net with a brilliant goal from long range to the bottom right corner of the goal. Schalke 04 1 (2)-(2) 1 Galatasaray.36:24
Atsuto Uchida challenges Wesley Sneijder unfairly and gives away a free kick. Direct free kick taken by Selcuk Inan.34:23
Wesley Sneijder produces a curled right-footed shot from deep inside the penalty box which goes wide of the right-hand upright.33:23
Burak Yilmaz produces a cross, blocked by Sead Kolasinac.30:14
Outswinging corner taken right-footed by Selcuk Inan, Sead Kolasinac makes a clearance.29:16
Emmanuel Eboue fouled by Sead Kolasinac, the ref awards a free kick. Direct free kick taken by Emmanuel Eboue.27:32
Fernandes Michel Bastos takes a shot. Fernando Muslera makes a save.26:09
Benedikt Howedes concedes a free kick for a foul on Wesley Sneijder. Wesley Sneijder restarts play with the free kick.25:59
The ball is delivered by Jefferson Farfan, save made by Fernando Muslera.25:39
The ball is sent over by Julian Draxler, Dany Nounkeu manages to make a clearance.24:41
Shot from just outside the box by Selcuk Inan goes over the bar.23:49
Jefferson Farfan challenges Albert Riera unfairly and gives away a free kick. The free kick is swung in right-footed by Wesley Sneijder, Benedikt Howedes makes a clearance.23:20
De Carvalho Felipe Melo takes a shot. Blocked by Atsuto Uchida.23:12
Didier Drogba crosses the ball.22:32
Free kick awarded for an unfair challenge on Didier Drogba by Sead Kolasinac. Direct free kick taken by Hamit Altintop.22:02
Teemu Pukki takes a shot. Comfortable save by Fernando Muslera.19:14
Free kick awarded for a foul by Albert Riera on Marco Hoger. The free kick is delivered right-footed by Jefferson Farfan from right channel.16:49 Goal scored
Goal! - Roman Neustadter - Schalke 04 1 - 0 Galatasa'y Roman Neustadter finds the net with a goal from close range low into the middle of the goal. Schalke 04 1 (2)-(1) 0 Galatasaray.16:18
Corner taken by Jefferson Farfan from the right by-line. Benedikt Howedes takes a shot. Save by Fernando Muslera.15:07
Free kick awarded for a foul by Teemu Pukki on De Carvalho Felipe Melo. Emmanuel Eboue restarts play with the free kick.13:55
Free kick taken by Emmanuel Eboue.13:55 Booking
Booking Booking for Marco Hoger for unsporting behaviour.13:45
Marco Hoger concedes a free kick for a foul on Didier Drogba.13:00
Selcuk Inan takes a shot. Save by Timo Hildebrand.11:38
Corner taken by Jefferson Farfan, Header on goal by Joel Matip from inside the box goes harmlessly over the target.8:31
A cross is delivered by Jefferson Farfan, Emmanuel Eboue manages to make a clearance.7:44
Fernandes Michel Bastos has an effort at goal from 20 yards. Save made by Fernando Muslera.7:21
De Carvalho Felipe Melo concedes a free kick for a foul on Julian Draxler. Free kick taken by Sead Kolasinac.6:18
Corner taken right-footed by Selcuk Inan from the left by-line, save made by Timo Hildebrand.5:59
Didier Drogba takes a shot. Save by Timo Hildebrand.5:36
Marco Hoger gives away a free kick for an unfair challenge on Selcuk Inan. Selcuk Inan takes the free kick.5:02
Didier Drogba has an effort from just inside the box that misses to the left of the goal.4:35
Foul by Roman Neustadter on De Carvalho Felipe Melo, free kick awarded. Wesley Sneijder takes the direct free kick.2:24
Shot from outside the box by Hamit Altintop goes wide right of the target.1:12
De Carvalho Felipe Melo fouled by Julian Draxler, the ref awards a free kick. Free kick taken by Dany Nounkeu.0:00
The referee gets the game underway.
Live data and text provided by our data suppliers