The plane, which had taken off from Las Vegas, landed safely in Quebec around 6 a.m. ET today.
The flight left the McCarran International Airport at 9:30 p.m. PT Tuesday. It was due to arrive at Heathrow Airport at 3:25 p.m. BST.
All 312 people aboard disembarked safely.
A spokeswoman for British Airways said the captain made the decision to divert the airplane as a precaution.
The airline said it will pay for the hotel rooms of people on the plane, and will rebook flights as soon as possible.
The airline said it is co-operating with Canadian authorities.