111 seats changed hands compared to the result in 2010 plus three by-election gains reverted to the original winner.
Conservatives lost 11 seats (10 to Labour and one to UKIP in Clacton) and gained 35 (27 from Liberal Democrats and 8 from Labour) making a net gain of 24 seats.
The eight seats gained from Labour were Bolton West, Derby North, Gower, Morley and Outwood, Plymouth Moorview, Southampton Itchen, Telford and Vale of Clywd.
Labour lost 48 seats (40 to SNP and 8 to Conservatives) and gained 22 (12 from Liberal Democrats and 10 from Conservatives) making a net loss of 26 seats.
The ten Conservative seats gained by Labour were Brentford and Isleworth, Chester, Dewsbury, Ealing Central and Acton, Enfield North, Hove, Ilford North, Lancaster and Fleetwood, Wirral West, and Wolverhampton South West.
Liberal Democrats lost 49 seats (12 to Labour, 27 to Conservatives and 10 to SNP.)
SNP gained 50 seats (40 from Labour and 10 from Liberal Democrats.)
Alliance lost their only seat (East Belfast) to the DUP. DUP lost one seat (South Antrim) to the UUP. Sinn Fein lost one seat (Fermanagh and South Tyrone) to the UUP.
Three seats won at by-elections by Labour, UKIP and Respect, respectively, returned to the party that won in 2010: Conservative (Corby, Rochester and Strood) and Labour (Bradford West).
Turnout was up 1 point.
It’s not clear how many people aren’t registered when they could be.