The epicentre of the quake, which hit at about 12:33 p.m. (6.33 a.m. EDT) was between the towns of Massa and Lucca in Tuscany and La Spezia in the Liguria region, the national geophysics institute said.
The tremor was felt in Milan, the largest city in northern Italy, and as far north as the Friuli region near the border with Slovenia.
The mayor of Casola in Lunigiana, a small town in the Tuscan countryside, told Italian television the quake had caused cracks in some old buildings and minor collapses but there were no reports of injuries.
Aftershocks continued to rock the area, some as strong as magnitude 4.0, officials said, adding that residents in some rural areas were advised to stay out of their homes for the time being.
The last major earthquake to hit Italy struck in May, 2012 in the central Emilia Romagna region. That quake measured 6.0 magnitude and killed more than 20 people, destroyed historic buildings and caused widespread damage to local industries.