Bastos salvages draw for Schalke
Stefan Kiessling opened the scoring for Leverkusen in the 26th minute and Lars Bender doubled their advantage 15 minutes from time.
Sascha Molders made things interesting by pulling a goal back for the visitors in the 89th minute, but they could not force an equaliser.
Mainz went ahead through Andreas Ivanschitz in the 27th minute, but Bastos levelled four minutes before the break. Zdenek Pospech restored the hosts' lead midway through the second half, but Bastos ensured the visitors a draw with eight minutes left.
The Holland midfielder despatched a fine effort into the top-left corner from outside the box in the 24th minute.
Max Kruse gave Freiburg the lead after 36 minutes before Nils Petersen equalised moments later.
Daniel Caligiuri made it 2-1 to the visitors from the penalty spot in the 55th minute, and, although Petersen's second levelled it up again nine minutes later, Matthias Ginter's 70th-minute strike finally settled it.
Dani Schahin missed an early penalty for the hosts before Bellinghausen grabbed the game's only goal in the 18th minute. Bottom-of-the-table Furth had midfielder Jozsef Varga sent off in the 38th minute for a second bookable offence.