Labour seized the Corby constituency from the Conservatives by a margin of almost 8,000 votes, in a result which will give a major boost to leader Ed Miliband.
It was the first time in 15 years Labour has won a House of Commons seat from the Tories in a by-election, and 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. 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 said it was “a damning verdict on (David) Cameron’s betrayal of the British people”.
Elsewhere there were swings towards Labour as the party held two other seats in by-elections.
Stephen Doughty claimed Cardiff South and Penarth, winning 9,193 votes, while Lucy Powell won with 11,507 votes in Manchester Central, where the swing away from the Liberal Democrats was 16.77 per cent.
In Manchester, the turnout of 18.16 per cent was the lowest in a parliamentary by-election since the Second World War.
For Tory candidate Matthew Sephton the result was so disappointing he lost his deposit, managing only 754 votes, less than five per cent of the total turnout.
Voter turnout in Cardiff was also very low but higher, at 25.65 per cent.
Prime Minister David Cameron took some comfort from the muted voting.
He described the Corby poll as “a classic mid-term result”, adding, overall, it was “a very mixed picture and shows there is no enthusiasm for the alternative.”