The US geological survey said the quake occurred just after 7.30 this morning (1930 UTC) at a depth of 10 kilometres.
RNZI reports it struck 31 kilometres east south east of Lakatoro on the island of Malekula.
The quake was felt strongly in both the capital Port Vila, in the south of the country, and in the main northern centre of Luganville, which is closer to the epicentre.
Images of damage to general stores in Luganville have surfaced on Facebook.