The anti-EU, anti-immigration Ukip came second and almost seized its first ever by-election success. Had the party poured more resources into the contest – and perhaps fielded leader Nigel Farage as candidate – it could have had its own Galloway/Bradford moment.
And yet as voters went to the polls in the nondescript Hampshire town yesterday, new ONS data showed net migration at 163,000 in the year to June 2012. That was a big fall from the peak of about 250,000 in late 2010.
The coalition is still failing to hit its promise to bring down annual net migration to “tens of thousands” – but this pledge was only for 2015, so ministers can argue they are on track.
But has the public noticed? These statistics are almost certainly lost with voters, many of whom would prefer an even tougher crackdown on immigration; it was the issue I heard time and time again while doing vox pops a few weeks ago in Eastleigh.
The idea that “only” 100,000 people may be entering the country by the end of the Parliament will still sound like too many to a large number of right-leaning voters.
Meanwhile David Cameron’s offer of a referendum on the EU has done nothing to halt Ukip.
Thus perhaps we all should have been smarter at seeing the Ukip surge somewhat earlier. The party benefited from both the public hostility to large-scale immigration and a broad anti-political mood with people voting effectively for “none of the above”.
Some will argue that the Lib Dem success proves that immigration/EU are not the number one factor on people’s minds: but that would be to over-analyse how closely the public follow party’s actual policies. Plenty of voters don’t see the irony of being a swing Ukip-Lib voter because they will not have read any manifestos written by either party.
Ukip are now likely to move on to further small victories in local authorities and, quite likely, a very big moment in the 2014 European elections where some perfectly sensible psephologists think they could come first.
As always, however, the question is whether they will continue to split the centre-right vote in 2015 or whether their supporters will reluctantly return to the Tory fold.
Meanwhile Liberal Democrat Mike Thornton’s victory will go down in the party’s folklore: the hundreds of activists, councillors and MPs who poured into the seat will recall how a formidable local operation prevailed in the face of appalling national circumstances.
After almost three years of electoral setbacks since joining the coalition, this was a reminder the party can still win, that the party still has heart and it can hold off the Tories in the 40 or so seats where David Cameron’s party is the main challenger.
If they could hold Eastleigh – a by-election triggered by Chris Huhne’s resignation for lying over a speeding offence and overshadowed by the Lord Rennard affair – hopes will rise in the party that it is not heading for electoral Armageddon in 2015.
The result is bad for Ed Miliband, with Labour barely budging since 2010. Don’t be surprised if Miliband is persuaded to start sounding rather tougher on immigration and apologising for his party’s “failures” while in government on the issue.
But the biggest loser by far this morning is David Cameron, who must now brace himself for the “crisis” predicted by former leadership contender David Davis if the Tories finished behind Ukip.
Yes, it is rare for governing parties to gain seats in by-elections; the last time the Tories did it was in 1982 in Mitcham and Morden at the height of Falklands War patriotism.
But this is a seat the Tories could have won against a coalition partner mired in scandal and polling in single figures nationally. Instead the party was poorly organised on the ground – a reflection of the erosion of its activist base – and lacking a clear message to peg back Ukip.
Mr Cameron can now expect calls to grow in the party for a turn further to the right to counter the Farage insurgency, with a tougher message on immigration and Europe.
Michael Gove, the education secretary, indicated on the Today programme this morning that this wouldn’t happen: other Tory MPs will disagree.