Four people were taken to hospital after the cover of the bus – which had been partly open-topped – was wiped out by an overhanging branch.
Passengers were left sitting in the packed top deck with the detached roof resting up against the side after the collision in Bloomsbury.
London Ambulance Service said nine people were treated and four taken to hospital following the accident in Woburn Place, close to Russell Square Tube station.
The London Fire Brigade was forced to lift one passenger out of the upper deck.
Craig Douglas, 28, said passengers were “hugging and consoling” each other after their “miraculous” escape.
The salesman from Essex, who witnessed the aftermath, said: “The roof was hanging off even though the branch really did not look big enough to do it; I don’t know how it happened.
“Everyone was standing up and seemed rather okay. A few people were hugging and consoling each other.
“It looked miraculous that everyone got away, the whole roof was off and there was glass all over the floor.”
The London Fire Brigade said crews were called at 1.12pm.
A spokesman said: “Firefighters were called to Woburn Place in Bloomsbury after a tourist bus collided with the overhanging branch of a tree.
“The impact removed the roof of the bus. Four people were taken to hospital and around 40 other uninjured passengers were looked after by police and LAS staff in a nearby building.”
A spokesman for LAS said: “We sent a number of resources to the scene including the hazardous area response team, a cycle responder, an advanced paramedic practitioner and London’s Air Ambulance to the scene.
“We treated nine patients in total, and we took four people to hospital.”
The tour bus company has been contacted for a comment.
Source: London Evening Standard