The visitors were two goals to the good in the first half, but a clinical finish from Klaas-Jan Huntelaar and a second-half effort from Jefferson Farfan earned the hosts a pointArsenal were pegged back from two goals up by Schalke for a draw as they earned a valuable point away from home in Group B of the Champions League.
The Gunners took the lead with Theo Walcott tapping into an empty net, and doubled their advantage as Olivier Giroud nodded home, but a goal from Klass-Jan Huntelaar halved the deficit before Jefferson Farfan levelled the scores.
Despite late pressure from Schalke, Arsene Wenger's side stayed strong to secure a vital point to stay second in their group.
Schalke began as expected, with Huntelaar as striker and support on the flanks from Ibrahim Afellay and Farfan. Lewis Holtby, who continues to be linked with a move to the Premier League, began in the centre for the German side.
Arsene Wenger chose to replace the under-fire left-back Andre Santos with Laurent Koscielny, as the French defender moved centrally, with Thomas Vermaelen filling in on the flank.
Elsewhere, Walcott earned a starting place following his lively cameo against Manchester United, with Aaron Ramsey dropping out of the squad entirely.
The hosts started strongly, with Afellay testing Vito Mannone with a low shot that the keeper palmed away, before Benedikt Howedes came close with a header from a corner, but his effort drifted onto the top of the net.
And somewhat against the run of play, the visitors took the lead through Walcott, a man who has stated his preference for playing through the middle this season.
Giroud was sent through by a suicidal header from Roman Neustadter, but as he elected to try and chip Lars Unnerstall, he kicked the floor. As Howedes made a last-ditch challenge, Walcott sped in to round the keeper via a deflection and tap the ball into the empty net.
The Gunners extended their lead in the 26th minute, with Giroud nodding home his first Champions League goal after some fine work from Lukas Podolski.
After a good move involving Walcott, Jack Wilshere and Giroud, the ball found its way to Podolski on the left wing. The striker slipped, but his recovery was so quick that it surprised the defence, as he turned and swung in a great cross for the unmarked Frenchman to score.
Huntelaar fired Schalke back into the game in first-half stoppage time, with an unnerving finish into the bottom corner after some nice work from the midfield, with Holtby's assist a fine pass.
Giroud could have added another shortly after the break, but volleyed over from another Podolski cross, while Huntelaar missed a sitter at the other end, with Mannone saving well.
A controversial moment came on the hour mark as Podolski looked to be through on goal, but play was brought back with Marco Hoger down injured. The striker vented his frustrations and was booked for dissent, while Hoger was subbed for Kyriakos Papadopoulos.
The hosts were level in the 67th minute though, as a cross in from the left that Holtby couldn't direct goalwards was pounced on by Farfan, with his shot deflected in by Vermaelen.
Schalke generally dominated the rest of the game, but looked susceptible to Arsenal's counterattack, and while Walcott had a very late effort saved, neither side could claim all three points in an enthralling encounter.