Schalke gave their hopes of avoiding relegation from the Bundesliga a huge boost with a last-gasp 3-2 victory over Mainz.