At least 58 people were killed and more than 100 wounded on Monday in two blasts in eastern Iraq claimed by Islamic State in a province once considered mostly free of them.

In January Iraqi officials declared victory over the insurgents in Diyala province, which borders Iran, after security forces and Shi'ite paramilitaries drove them out of towns and villages there. But the militants have remained active.

An explosion at a market in Huwaidar, about 4 km (2.5 miles) north of the provincial capital of Baquba, killed 51 people and wounded at least 80, police and medical sources said.

"The attacker managed to pass a checkpoint by lining up with a wedding motorcade and then split off with his explosives-packed vehicle to blow it up in a crowded marketplace," said Diyala police captain Mohammed al-Tamimi.

Islamic State, which controls large parts of northern and western Iraq, claimed responsibility for the attack in the mixed Sunni-Shi'ite Muslim province and said the target was "rejectionists", as the group refers to Shi'ites.

A separate blast to the east of Baquba killed a further seven people and wounded 25. Islamic State said it had targeted a checkpoint manned by the army and volunteers from the Hashid Shaabi - an umbrella group for mainly Shi'ite militias fighting the radical jihadist group.

The attacks took place less than a month after a bombing claimed by Islamic State in the nearby town of Khan Bani Saad, which killed more than 100 people and prompted riots by distraught mourners.

Security forces and militia groups are currently focused on routing Islamic State from the western province of Anbar, where they have been gearing up for an offensive to retake the sprawling Sunni heartland.