The Boeing 767 was carrying 176 passengers and 11 crew members.
The passengers were given accommodation and meals at a local military base because hotel space was unavailable in the town, according to a statement from United Airlines.
Passengers were flown to Newark, N.J., on Saturday night and were then put on a connecting flight to London, which finally arrived at its destination around 2:30 p.m. local time Sunday.
"We apologize to our customers for the disruption, and we recognize this was a considerable inconvenience, so we will be refunding their tickets to London and providing additional compensation," United Airlines spokeswoman Mary Ryan said in an email to CBC News.
The airline gave no information about the nature of the problems that caused the diversion.
Passengers stranded in Happy Valley-Goose Bay took to social media to share their frustrations with the U.S. airline — and their bleak accommodations.
Some questioned why the flight crew was given accommodations at a local hotel while passengers had to spend the night at a military base.
One United Airlines passenger tweeted a photo of houses that were buried in snow while another commented on the freezing temperatures.
Meanwhile, some locals hit back on social media, alleging Happy Valley-Goose Bay had been misrepresented.