The quake was centred within 5km of the city, and was at a depth of 14km, GeoNet says.
It struck about 12.20pm. GeoNet initially reported it as a magnitude 2.7 but it was then upgraded to 3.3.
Almost 1000 people have so far reported feeling the tremor.
"The quake may have been felt in Akaroa, Amberley, Christchurch, Oxford, and surrounding localities," GeoNet said.
It was described as "short and sharp".