The election results will come as a disappointment to Labour, relief for the Conservatives and mild encouragement for the Liberal Democrats. But what role did factors such as Brexit and the votes of young people play, ask Prof John Curtice and colleagues on the BBC's local elections team.
It was a night in which big swings were rare - apart from a collapse in the UKIP vote. That enabled all three main parties to register gains, but with none of them making a decisive advance.
The Liberal Democrats managed to capture Richmond-upon-Thames from the Conservatives, where their party leader, Sir Vince Cable, is a local MP.
So, what does this tell us about how the parties have fared - and why?
Collapse of UKIP
Behind these gains and losses is a clear pattern of rises and falls in the levels of party support.
Most of the seats being contested were previously fought over in 2014, when Labour were narrowly ahead of the Conservatives in the opinion polls.
At that time, UKIP were riding the crest of a wave, while the Liberal Democrats were in the doldrums.
Thanks to a collapse in UKIP support almost everywhere, both the Conservatives and Labour are enjoying more support this year than they did four years ago.
The BBC's projected national vote share puts both parties on 35%. This could be seen as a draw, so far as both parties' national performance was concerned.
The Lib Dems are on 16% according the BBC estimate, which uses the results of key wards to estimate what a Britain-wide vote would have been.
The absence of any substantial net swing between the two largest parties is broadly in line with what might have been expected from the opinion polls, which put the Conservatives just a nose ahead.
Yet Labour had allowed expectations that the party would make big gains to grow, and especially that the party might perform spectacularly in London.
Instead Jeremy Corbyn has come away virtually empty handed, while the Conservatives have emerged virtually unscathed.
Areas of Leave and Remain
Not everywhere swung the same way.
As in last year's general election, the Conservatives fared better in places that voted for Leave than in those that voted for Remain.
The Conservative vote is up by 13 points where more than 60% backed Leave. These are the areas where UKIP had performed best four years ago.
However, the Conservatives have dropped by one point in areas where less than 45% voted Leave.
Not least of the reasons for this divergence is that UKIP performed best in 2014 in Leave-voting areas.
The collapsed UKIP vote in such places seems to have swung disproportionately behind the Conservatives, much as it did in last year's general election.
This pattern helps explain why the Conservatives' performance is weaker in London, which voted by three to two in favour of Remain.
The Conservative vote is only up one point in the capital, while Labour's vote increased by four points.
Consequently the party has lost more than 60 seats in London, whereas it gained around 60 in other parts of the country.
Role of young voters
Also in evidence, as in last year's general election, is a tendency for the Conservatives to fall back most heavily in places with large numbers of young voters.
In wards where more than 35% of the population are aged 18 to 34, the Conservative vote fell by one point.
But it increased by eight points where fewer than 20% belong to this age group.
Conversely, the Conservatives performed better the more pensioners there were in the ward.
Its vote is up by as much as 10 points on average where more than 20% of the population are aged 65 or over.
As well as struggling in places with relatively large numbers of young adults, the Conservatives did less well where there were more graduates and people from an ethnic minority background.
All of these were groups that were disinclined to vote for Brexit.
Liberal Democrat support has increased on average by three points.
However, this represents no more than a modest improvement on the poor 2014 result that the party was trying to defend.
Despite being the only significant party in England that opposes Brexit, the Liberal Democrats did not perform noticeably better in Remain voting areas.
Rather, the party's best performances seem to have been reserved for where the party was already relatively strong locally.
Meanwhile, the Greens found themselves trying to withstand a receding tide, with an average drop of 2 points to 7% in those wards where the party put up candidates.
However, the party had the consolation of making a net gain of six seats.
And, for a small party, occasional electoral success can be an invaluable lifeline.
About this piece
This analysis was commissioned by the BBC from experts working for outside organisations.
He worked with Stephen Fisher, Associate Professor of Political Sociology, University of Oxford; Robert Ford, Professor of Politics, University of Manchester and Patrick English, a postdoctoral researcher at the University of Sheffield.
Edited by Duncan Walker