BA said the 9.25pm (local time) flight from Las Vegas to Heathrow was diverted en-route at Montreal after the captain took the decision as a precaution.
A passenger, Ray Connolly, told Sky News: “In the middle of the flight they announced that there was a suspicious device on board. They searched the aircraft and diverted us to Montreal.”
Flight BA274 was carrying 312 passengers and landed in Montreal at 5.27am local time where passengers were evacuated onto buses with sniffer dogs.
Mr Connolly added: “The aircraft was brought away from the terminal building. Everybody was calm and orderly, there was no rush, no panic.”
A BA spokeswoman said: “Our flight from Las Vegas to Heathrow landed safely this morning at Montreal and customers left the aircraft as normal after the captain took the decision to divert the aircraft as a precaution.
“The safety and security of our customers, crew and aircraft are our highest priorities at all times.
“We are looking after the customers and will provide hotel rooms for them and will rebook them to other flights as soon as we can.”