Dramatic riots have erupted in a Swiss city after a migrant teen was killed in a scooter crash while fleeing the police.

Riot cops clashed with protesters who hurled Molotov cocktails in Lausanne as officials desperately tried to put a lid on escalating violence.

The unrest comes with the Olympic capital's police in the spotlight after four officers were suspended Monday following the unearthing of racist, sexist and discriminatory messages in private WhatsApp groups.

Marvin M, a 17-year-old Swiss resident of Lausanne, was fleeing police on a stolen scooter, hit a wall and died early Sunday, despite resuscitation attempts by emergency services.

It was the third death in less than three months in Lausanne during a police intervention. There have been seven such deaths in the city and the wider Vaud region since 2016. Five involved men of African origin.