It was an open start to the match at the Veltins Arena, with both sides eager to get onto the front foot in the early stages.
Werder, who had won their previous five games ahead of the trip to Gelsenkirchen, created the first chance of the game when Franco Di Santo found the space to test Timon Wellenreuther with a low strike.
It was Schalke who started to look the more dangerous of the two side heading into the half-time break, with Roman Neustadter slicing just wide of the target before Christian Fuchs came agonisingly close to converting Tranquillo Barnetta's inviting cross at the back post.
Werder looked dangerous early in the second half, but the deadlock was broken by Schalke just after the hour mark when Max Meyer's low effort from outside the box somehow managed to slip underneath Raphael Wolf.
The visitors struggled to keep the pressure on Schalke for an extended spell after falling behind, and Roberto Di Matteo's side were in control heading into the closing stages.
However, there was a late twist as Werder denied Schalke victory thanks to Prodl, who found enough space in the box to head home from Zlatko Junuzovic's free kick.