Grasshoppers twice came from behind to snatch a dramatic 3-2 win against ten-man Sion. Emile Mpenza put the home side in front on 34 minutes and restored Sion's lead on 61 minutes after Boris Smiljanic had equalised from the penalty spot.

Jamal Alioui had conceded the penalty and was dismissed for a second bookable offence, allowing Grasshoppers to take full advantage.

Ricardo Cabanas made it 2-2 on 74 minutes and Eulogio Zarate grabbed the winner in the last minute.

Elsewhere, Neuchatel Xamax and Lucerne remain second and third in the table respectively after both won.

Neuchatel won 2-1 at Zurich with goals from Ibrahima Niasse and Ideye Brown, while Lucerne beat Bellinzona 2-0 at home despite being reduced to ten men.

Dusan Veskovac saw red after 57 minutes, but the home side were already in front thanks to an own goal from Alessandro Mangiarratti and sealed the win through Christophe Lambert in the final moments.