Borussia Dortmund ended their season on a losing note but still finished in second place while champions Bayern Munich played out a thriller at Borussia Monchengladbach.
Dortmund had taken a sixth minute lead through Robert Lewandowski but Sejad Salihovic equalised from the spot with 13 minutes to go.
Dortmund were cut down to 10 men when Roman Weidenfeller saw red and Salihovic snatched the result with a second penalty.
The result allowed Hoffenheim to edge ahead of Fortuna Dusseldorf as they claimed the relegation play-off spot.
Monchengladbach had taken a 3-1 lead of Bayern in the opening 10 minutes with goals from Martin Stranzl, Mike Hanke and Havard Nordtveit. Javi Martinez had scored for Bayern.
The champions responded well though with Franck Ribery netting a double before Arjen Robben secured the victory.
Bayer Leverkusen finished in third to qualify for the Champions League while Freiburg and Eintracht Frankfurt secured the Europa League spots.
At the other end of the table, SpVgg Greuther Furth finished rock bottom with just 21 points while Dusseldorf were relegated, just a point behind Hoffenheim who have a chance in the play-offs.