| Candidate name | Party | Gender | Number of votes | Share (%) | Change vs. 2017 for party (percentage points) | ||
| Richard Fuller | Conservative | Male | 38,443 | 59.1% | -1.8 | ||
| Julian Vaughan | Labour | Male | 14,160 | 21.8% | -6.7 | ||
| Daniel Norton | Liberal Democrat | Male | 7,999 | 12.3% | +6.6 | ||
| Adam Zerny | Independent | Male | 2,525 | 3.9% | 0.0 | ||
| Philippa Fleming | Green | Female | 1,891 | 2.9% | +1.0 |
| Election statistics | ||
| Majority | ||
| Votes | 24,283 | |
| Percent | 37.3% | |
| Rank (1 = highest %) | 154 | |
| Turnout | ||
| Constituency | 71.7% | |
| Region | 68.2% | |
| UK | 67.3% | |
| Constituency in 2017 | 73.4% | |
| Size of electorate | 90,678 | |
| Valid votes cast | 65,018 |