Nigel Farage
Nigel Farage's Ukip will lose Rochester and Strood next year, David Cameron has promised Reuters

David Cameron has vowed Ukip will lose Rochester and Strood at next year's general election to the Conservatives.

The prime minister was speaking after Nigel Farage's party overturned a large Tory majority to claim the seat, last night.

Trying to put a gloss on what was a bad night for the government – in which Tory defector Mark Reckless handed Ukip its second parliamentary seat - Cameron insisted there were reasons for Tories to be cheerful.

The PM said: "The result was closer than the pollsters had predicted. I am absolutely determined to win this seat back at the next general election because anything other than a Conservative government will put our recovery at risk and Ed Miliband in Downing Street. I am more determined than ever to deliver security for Britain."

Labour's embarrassment at a Twitter gaffe by shadow frontbencher Emily Thornberry was also raised by Cameron. Thornberry triggered a storm of controversy by tweeting an allegedly 'sneering' image of England flags draped on a house in Rochester with a white van parked outside. She resigned over the image.

"Emily Thornberry is one of Ed Miliband's closest allies and aides," said Cameron. "Effectively what this means is that Ed Miliband's Labour party sneers at people who work hard, who are patriotic and who love their country, and I think that is absolutely appalling."

Reckless won a 2,920 majority for Ukip in Rochester and Strood, leading Farage to predict more gains for the anti-EU party next year.