A public bus has swerved to miss a truck and has crashed into the front of a cafe in Melbourne.

Cafe workers and bus passengers are lucky to be alive after a public bus swerved to miss a truck and smashed into a popular North Melbourne cafe.

The bus swerved to avoid a semi-trailer attempting to turn right at the corner of Dryburgh and Victoria streets at about 10am on Friday.

It went straight through the front of the North Melbourne Takeaway cafe on the corner.

The bus driver was hurt and taken to hospital in a stable condition, but four passengers and four cafe staff avoided injury.

"Looking at the scene, it's a stroke of luck it wasn't more serious," Senior Sergeant John Mason told reporters on Friday.

Local resident Helena Steel said there is a problem with speeding traffic in the area.

"We've lost lives on this corner," Ms Steel told AAP.

John Mie was inside his home nearby when he heard a loud noise and ran outside to see what happened.

"It was very noisy...boom! (I heard it) two times," Mr Mie told AAP.

The truck driver has been questioned and tested for drugs and alcohol.

Police said he could face charges of careless driving and failing to give way to traffic.