General Election 2019: The Wales results in full
The impact of the Conservatives' General Election dominance has been reflected in Wales, where the Tories seized several seats from Labour.
The Conservatives went from having eight seats at the last election - to 14 now.
It included, for the first time in history, the seat of Wrexham, a traditional Labour constituency which had been red since the 1930s.
The Labour party won 22 seats, Conservatives 14 and Plaid Cymru four.
At the last general election, called by Theresa May in 2017, Labour won 28 of the 40 Welsh seats. The Conservatives had eight whilst Plaid Cymru claimed four.
This year’s election was called by Boris Johnson at the end of October and is the first winter election we have had since 1923.
Here are the details of the gains for the Conservatives in their best performance in Wales since 1983.
Here is a full list of the 40 MPs for Wales.
North
Aberconwy: Conservative Hold - Robin Millar MP (2,034 majority)
Alyn and Deeside: Labour Hold - Mark Tami MP (213 majority)
Arfon: Plaid Cymru Hold - Hywel Williams MP (2,781 majority)
Clwyd South: Conservative Gain - Simon Baynes MP (1,239 majority)
Clwyd West: Conservative Hold - David Jones MP (6,747 majority)
Delyn: Conservative Gain - Rob Roberts MP (865 majority)
Dwyfor Meirionnydd: Plaid Cymru Hold - Liz Saville Roberts MP (4,740 majority)
Vale of Clwyd: Conservative Gain - James Davies MP (1,827 majority)
Wrexham: Conservative Gain - Sarah Atherton MP (2,131 majority)
Ynys Môn (Anglesey): Conservative Gain - Virginia Crosbie MP (1,968 majority)
Mid
Brecon and Radnorshire: Conservative Gain - Fay Jones MP (7,131 majority)
Ceredigion: Plaid Cymru Hold - Ben Lake MP (6,329 majority)
Montgomeryshire: Conservative Hold - Craig Williams MP (12,138 majority)
South East
Blaenau Gwent: Labour Hold - Nick Smith MP (8,647 majority)
Bridgend: Conservative Gain - Jamie Wallis MP (1,157 majority)
Caerphilly: Labour Hold - Wayne David MP (6,833 majority)
Cardiff Central: Labour Hold - Jo Stevens MP (17,179 majority)
Cardiff North: Labour Hold - Anna McMorrin (6,982 majority)
Cardiff South and Penarth: Labour Hold - Stephen Doughty MP (12,737 majority)
Cardiff West: Labour Hold - Kevin Brennan MP (10,986 majority)
Cynon Valley: Labour Hold - Beth Winter MP (8,822 majority)
Islwyn: Labour Hold - Chris Evans MP (5,464 majority)
Merthyr Tydfil and Rhymney: Labour Hold - Gerald Jones MP (10,606 majority)
Monmouth: Conservative Hold - David Davies MP (9,982 majority)
Newport East: Labour Hold - Jessica Morden MP (1,992 majority)
Newport West: Labour Hold - Ruth Jones MP (902 majority)
Ogmore: Labour Hold - Chris Elmore MP (7,805 majority)
Pontypridd: Labour Hold - Alex Davies-Jones MP (5,887 majority)
Rhondda: Labour Hold - Chris Bryant MP (11,440 majority)
Torfaen: Labour Hold - Nick Thomas-Symonds MP (3,742 majority)
Vale of Glamorgan: Conservative Hold - Alun Cairns MP (3,562 majority)
South West
Aberavon: Labour Hold - Stephen Kinnock MP (10,490 majority)
Carmarthen East and Dinefwr: Plaid Cymru Hold - Jonathan Edwards MP (1,809 majority)
Carmarthen West and South Pembrokeshire: Conservative Hold - Simon Hart MP (7,745 majority)
Gower: Labour Hold - Tonia Antoniazzi MP (1,837 majority)
Llanelli: Labour Hold - Nia Griffith MP (4,670 majority)
Neath: Labour Hold - Christina Rees MP (5,637 majority)
Preseli Pembrokeshire: Conservative Hold - Stephen Crabb MP (5,062 majority)
Swansea East: Labour Hold - Carolyn Harris MP (7,970 majority)
Swansea West: Labour Hold - Geraint Davies MP (8,116 majority)