| Candidate name | Party | Gender | Number of votes | Share (%) | Change vs. 2017 for party (percentage points) | ||
| Jamie Stone | Liberal Democrat | Male | 11,705 | 37.2% | +1.4 | ||
| Karl Rosie | Scottish National Party | Male | 11,501 | 36.6% | +7.4 | ||
| Andrew Sinclair | Conservative | Male | 5,176 | 16.5% | -6.2 | ||
| Cheryl McDonald | Labour | Female | 1,936 | 6.2% | -6.2 | ||
| Sandra Skinner | Brexit Party | Female | 1,139 | 3.6% | 0.0 |
| Election statistics | ||
| Majority | ||
| Votes | 204 | |
| Percent | 0.6% | |
| Rank (1 = highest %) | 643 | |
| Turnout | ||
| Constituency | 67.0% | |
| Region | 68.1% | |
| UK | 67.3% | |
| Constituency in 2017 | 65.9% | |
| Size of electorate | 46,930 | |
| Valid votes cast | 31,457 |