A suicide bomber driving a car and gunmen disguised as police have killed at least 33 people in Iraq's Kirkuk after they tried to storm a city police headquarters.

The blast wounded at least 70 more people and police said there were still bodies trapped under the collapsed debris of buildings after the attack in Kirkuk, 170km north of the capital Baghdad.

"Two gunmen wearing explosive vests tried to storm into the Kirkuk police directorate, but guards at the main guard engaged them and killed them," a police source inside the compound said.

Kirkuk, a religiously and ethnically mixed area of Arabs, Kurds and Turkmen, is at the heart of a dispute over oil and land between Baghdad's central government and the autonomous Kurdistan enclave in the north.

Several armed groups are active in Kirkuk, and Sunni Islamist insurgents tied to al-Qaeda often attack security forces in an attempt to undermine Shia Prime Minister Nuri al-Maliki's government and stoke sectarian tensions.

Last month a suicide bomber disguised as a mourner killed at least 26 at a funeral at a Shia mosque in another city near Kirkuk, and days earlier a suicide bomber driving a truck killed 25 in an attack on a political party headquarters in Kirkuk.