Eight of the 30 children on the bus were treated for minor injuries.
Police are still investigating why the car swerved from its path before striking the front of the bus. The car's driver, who was in his 20s, was declared dead at the scene.
The students are from a high school in nearby Longueuil.
The accident was in Varennes, on the city's south shore.