To watch highlights click here (Hashemian's goal at minute 04:20)
Vicente Sanchez gave Schalke the lead after just five minutes and Kevin Kuranyi made it 2-0 in the 42nd minute.
But Vahid Hashemian pulled a goal back for Bochum in the 82nd minute - the first goal Felix Magath's side had leaked in five games - and Stanislav Sestak shocked the visitors with the leveller two minutes into added time.
The result ended a four-game winning streak for Schalke, who moved onto 38 points but slipped to third in the standings.
Thirteenth-placed Bochum saw their modest two-game winning run snapped but took their points tally up to 20 - three points above the drop zone.
The guests went ahead in the fifth minute. Jefferson Farfan latched onto a throw-in on the right side and crossed into the box for Sanchez to slot home from five yards.
Schalke dominated the run of play and finally doubled their advantage three minutes before the break.
Farfan was again the provider, collecting Christoph Moritz's through-ball and chipping into the middle for Kuranyi to poke home his 10th goal of the season and eighth in the last 11 games.
Bochum had a chance a minute before the interval but Roman Prokoph hit the left-hand upright from a tight angle.
The hosts emerged after the restart in aggressive mode only to see Schalke miss a golden chance to finish off the game for good after 55 minutes, Kuranyi shooting directly at Bochum goalkeeper Philipp Heerwagen from five yards.
Bochum pulled a goal back with eight minutes left when Hashemian was left all alone from a corner and made no mistake, volleying home from three yards.
Much to the visitors' dismay, Hashemian then set up the equaliser two minutes into stoppage time, crossing from the left for Sestak to nod past Schalke goalkeeper Manuel Neuer. |