Boris Johnson gave David Cameron a coalition headache by delivering a verbal kicking to Liberal Democrat leader Nick Clegg.
Johnson came out strongly against the Conservatives' coalition partners by deriding deputy prime minister Clegg for his record in government with Cameron.
"His singlemost contribution to British politicis has been to make a U-turn on tuition fees, then to make a song about it," crowed Johnson.
The London mayor spoke out during a visit to Eastleigh, Hampshire, to help the Tory election campaign wrest the seat from the Lib Dems.
He said it was the Conservatives' "duty" to kick the party propping up Prime Minister David Cameron.
"There are lots of areas where the Lib Dems are pitifully weak," he said. "It's our constitutional duty to kick the Lib Dems in the ... Do they have any?"
Johnson's trip to aid candidate Maria Hutchings while Cameron was out of the country renewed speculation about his ambitions to become PM.
He denied hitting the campaign trail was a plot to upstage Cameron.
"This just happens to be the most convenient day in the half term to come to Eastleigh," Johnson said.
"David Cameron has a clear plan. This is about a very tight fight in Eastleigh, which the Lib Dems have held since 1994. If we can pull it out of the hat that would be fantastic, but clearly it will be a tough fight.
"I'm not in a coalition at City Hall," Johnson told the Evening Standard.
"I truckle to no man. I've no pact with these great big wobbling jellies. I'm free to say what I think. They're all over the place with their policies."
The by-election was called after Clegg lost one of his most senior colleagues with the shock resignation of former energy secretary Chris Huhne.
He quit in disgrace after admitting to perverting the course of justice by lying to police about a motoring offence. He now faces jail.
The trial of Huhne's former wife, Vicky Pryce, on the same charge collapsed when the jury was unable to reach a verdict and was dismissed.