No-one was injured in the incident in Lhanbryde, near Elgin.
The alarm was raised at about 22:00 on Thursday.
Crews took two and a half hours to bring the fire under control.  An investigation is under way into the cause of the blaze.
More than 30 firefighters have tackled a blaze in Moray.