Schalke came back twice to equalize, but Hoffenheim found a 3-2 winner in stoppage time thanks to substitute Sven Schipplock who had been on the pitch for only a few minutes.
Hoffenheim shocked Schalke and jumped out to an early lead after only 13 minutes. Fabian Johnson split the defense with a pass out in front of Kevin Volland. The 20 year old took a touch before poking it past Lars Unnerstall to give the hosts a 1-0 lead.
The equalizer came in the 37th minute. After not generating much of an offense in the first half hour, Schalke won a corner kick. Jefferson Farfan sent in a corner and Roman Neustädter headed it into the corner past Tim Wiese. Schalke thought they took the lead just before halftime, by Ibrahim Afellay's goal was called back for a foul.
It was Hoffenheim that grabbed the next goal thanks to a penalty. Joel Matip was judged to have fouled Volland, and Roberto Firmino stepped up and converted the penalty for the 2-1 lead.
Schalke grabbed a second equalizer in the 82nd minute. Farfan crossed the ball into the area, and Klaas Jan Huntelaar's backheel ended up in the path of Atsuto Uchida. The Japanese international beat Wiese to the ball and put it in the back of the net for the lead.
Schipplock came onto the pitch in the 89th minute likely as a time wasting substitution. He made the most of his few moments on the pitch and scored on a through ball from Firmino to give Hoffenheim the 3-2 victory.