Passengers ducked their heads and closed their eyes as their bus ploughed into a Melbourne bridge, peeling the roof off like a tin can.

All the passengers have now been rescued and taken for medical treatment after the bus slammed into the South Melbourne light rail bridge on Monday morning.

Emergency crews rescued 15 people from the wreckage before cutting seats out to remove four others who were trapped.