Mexico City: Clashes between police and suspected cartel gunmen in a northern Mexican town have killed 21 people in one weekend.

The government of the northern state of Coahuila said local security forces killed seven gunmen early on Sunday, adding to 10 who were earlier shot dead during exchanges in and around the small town of Villa Union not far from the Texas border.

A home riddled with bullet holes in Villa Union, Mexico. Credit:AP

Four police were also killed and six wounded in the shootouts, which started around midday on Saturday, local time, sparking alarm on social media and fresh criticism of the government's approach to handling the powerful gangs.

Riding into town in a convoy of heavily armed utility trucks, gunmen sprayed the offices of the mayor of Villa Union with bullets and fought police for more than an hour.