Andre Breitenreiter's side controlled the tempo of the game for long spells, but clear opportunities proved to be rare as Ingolstadt defended impressively to force the hosts into speculative efforts.
A longer ball almost provided the breakthrough as Max Meyer timed his run well to collect the ball in space and unleash a low effort which Ramazan Ozcan pushed clear.
It took a moment of magic for the deadlock to be broken before the interval as Matthew Leckie's cross deflected into the path of Tobias Levels, who powered home a volley to leave Ralf Fahrmann helpless.
Predictably, Schalke produced a response after heading into the break behind and they immediately asked questions of the Ingolstadt defence as Klaas-Jan Huntelaar saw an effort blocked following good work from Leroy Sane.
Despite holding such a slender advantage, Ingolstadt coped well for long spells until an inviting cross from substitute Eric Maxim Choupo-Moting reached Huntelaar, whose header was tipped wide of the post by Ozcan.
The Ingolstadt goalkeeper was left helpless when Schalke did equalise with 13 minutes remaining as Sane peeled away from his marker to meet Choupo-Moting's cross with an unstoppable header.
Schalke piled the pressure on in the closing stages, but Ingolstadt held on to ensure that they did not walk away empty handed.