Ed Miliband claimed that Middle England was turning its back on David Cameron, after Labour won the Corby by-election on a 12.7% swing.

It was the first time in 15 years that Labour has won a House of Commons seat from the Tories in a by-election, and Mr Miliband said it was because "Middle England feels let down by David Cameron and the Conservatives".

Victorious candidate Andy Sawford suggested it had set the party on track for a successful general election in 2015, declaring: "The road to Downing Street runs through Corby."

The by-election in the Northamptonshire seat was forced by the resignation of Conservative MP Louise Mensch to spend more time with her family in the USA.

Last night she took to Twitter to accept the blame for her party's failure to retain the seat, which was Labour from 1997 until 2010.

Mr Sawford won 17,267 votes, against Conservative Christine Emmett's 9,476, on a 12.67% swing from Tories to Labour, overturning a Tory majority of 1,951 in the 2010 general election.

Liberal Democrats were beaten into fourth place by the UK Independence Party, and Nick Clegg's party suffered the indignity of losing its deposit, despite requesting two recounts.

Mrs Mensch described the result as "very respectable indeed" after the result was announced.

Responding to the Corby result, Prime Minister David Cameron put the loss down to a "classic mid-term result".

Mr Miliband's party also won Westminster by-elections in the safe seats of Cardiff South and Manchester Central.