| Candidate name | Party | Gender | Number of votes | Share (%) | Change vs. 2017 for party (percentage points) | ||
| James Brokenshire | Conservative | Male | 29,786 | 64.5% | +3.1 | ||
| David Tingle | Labour | Male | 10,834 | 23.5% | -5.8 | ||
| Simone Reynolds | Liberal Democrat | Female | 3,822 | 8.3% | +5.0 | ||
| Matt Browne | Green | Male | 1,477 | 3.2% | +1.5 | ||
| Carol Valinejad | Christian Peoples Alliance Party | Female | 226 | 0.5% | +0.3 |
| Election statistics | ||
| Majority | ||
| Votes | 18,952 | |
| Percent | 41.1% | |
| Rank (1 = highest %) | 108 | |
| Turnout | ||
| Constituency | 69.8% | |
| Region | 67.5% | |
| UK | 67.3% | |
| Constituency in 2017 | 72.8% | |
| Size of electorate | 66,104 | |
| Valid votes cast | 46,145 |