The magnitude 5.8 quake was 8km deep and centred 20km north east of Lyttelton. It struck at 1.58pm and was followed by a second sharp jolt a few minutes later. Several other aftershocks have also been recorded.
The quake was felt as far south as Queenstown and as far north as Lower Hutt, according to GeoNet. People in Greymouth, Ashburton, Dunedin, Hanmer Springs and Oamaru also felt the quake.
There are reports of liquifaction in the Christchurch suburb of Parklands.
Christchurch Airport has been evacuated. Fairfax reporter Hamish Rutherford, who was at the airport, said the alarms had gone off, people had left the building, and were now waiting outside.
He said people kept calm while the building rocked from side to side during the strong quake, which last about 20 seconds.
A visitor to the city said Westfield Mall was being evacuated. Terrified shoppers stumbled and fell as they fled the mall and items tumbled off shelves.
Phone lines are down and power is out in New Brighton.
A police spokeswoman did not know whether there had been any reports of damage or injuries but said the phones were really busy.
Anthony Surynt was working in an electrical workshop in Sydenham when the quake struck.
He said it was the biggest one he has felt since June 13, when a 6.3 magnitude hit the city.
He could see the Grand Chancellor from where he was and said it was still standing.
Nothing had fallen off the shelves but it was quite a scare as there hadn’t been many large earthquakes in the area for a while, he said.
It lasted for about 10 to 15 seconds, but didn’t have any sharp “viscious movements” like the previous quakes had caused.
Last year Christchurch was rocked by a series of earthquakes on Boxing Day, with more than two dozen recorded.
A 4.9-magnitude quake at 10.30am was the 17th most powerful since the damaging 7.1 quake on September 4.
The earthquake that caused the most damage hit on February 22, killing 182 people.