Three horses and at least one dog were killed during a barn fire in South Surrey Wednesday, but it could have been much worse if not for a passerby that set other animals free.

Smoke was visible for several kilometres after the fire broke out around noon, in the 16600-block of 16th Avenue.

Asst. Chief Chris Keon of the Surrey Fire Department said there were 13 horses in the barn when flames erupted.

Someone driving by noticed the fire, and called 911 before running in to free several horses.

The road around the barn was closed to traffic for several hours while crews knocked down the fire and any hotspots. The barn was a total write-off.

Kim Marosevch, manager of animal care for the City of Surrey, confirmed that four animals were killed, and two other dogs were unaccounted for.

The cause of the fire is not known.