BERLIN, April 26 (Reuters) - Werder Bremen and Schalke 04 kept alive their slim hopes of catching Bundesliga leaders Bayern Munich on Saturday.
An 86th-minute equaliser from Boubacar Sanogo gave Bremen a dramatic 3-3 draw at Karlsruhe to hold on to second place on 54 points while Schalke, third also with 54, beat Hamburg SV 1-0.
Bayern lead the table with 63 points with five matches remaining and play VfB Stuttgart at home on Sunday. Bayern could have clinched their 21st German championship against Stuttgart if Werder had lost and Schalke had not won.
Bremen came from behind twice to snatch a crucial point in Karlsruhe and stay ahead of Schalke on goal difference in the second-place battle for direct Champions League qualification.
'We gave up some points needlessly here,' Bremen coach Thomas Schaaf told Germany's Premiere Television.
'I couldn't even begin to count how many chances we had. Even at the end we had enough chances to win. It's our own fault. I wish we could have taken three points home.'
Sebastian Freis beat the Bremen offside trap to put mid-table Karlsruhe in front after 15 minutes before Diego fired in a deflected equaliser seven minutes later.
Midfielder Mesut Oezil scored his first Bremen goal in the 29th minute but Freis got his second just before the hour, outsprinting Naldo, then beating Germany defender Per Mertesacker to make it 2-2.
Eight minutes later Albania striker Edmond Kapllani put the hosts back in front only for Sanogo to rescue a point for Bremen four minutes from time.
In Hamburg, Schalke's Kevin Kuranyi headed home an Albert Streit cross just 90 seconds into the match, to leave HSV without a win in their last six matches.
'It's a good thing that we won,' said Kuranyi, who scored four goals in last week's 5-0 win over Energie Cottbus. 'We did everything to keep them from getting a goal. We deserved to win even though they played better at times.'
At the bottom of the table, Cottbus scored twice in the final nine minutes to beat Hansa Rostock 2-1 and pull five points clear of the relegation zone in 14th place on 32 points.
Rostock dropped to second from bottom on 27 points, level on points with 16th-placed Nuremberg who drew 2-2 with Arminia Bielefeld, two points clear in 15th place.