Pictures on social media showed shattered glass and paramedics tending to passengers on the upper deck of the red double-decker bus.
Passenger Amy Mullineux, a nurse, said the driver told her he had lost consciousness.
"He said he blacked out before the bus hit the shop," the 40-year-old said. "He doesn't remember hitting anything."
The accident happened on Lavender Hill, in southwest London, known for the 1951 British comedy film "The Lavender Hill Mob", starring Alec Guinness, Sid James and a young Audrey Hepburn, which won an Oscar for best screenplay.
Another passenger, Andrew Matthews, 34, said around a dozen were on board when the bus began to drift off the road.
"As soon as the bus came to a stop there was yelling, screaming," he said. "I noticed a lady wedged in the front right-hand side. She was screaming for help. There was a lot of blood."
The two passengers initially trapped were freed by firefighters and the bus driver was taken to hospital. London Ambulance Service said they had treated six patients.