| Candidate name | Party | Gender | Number of votes | Share (%) | Change vs. 2017 for party (percentage points) | ||
| John Nicolson | Scottish National Party | Male | 26,882 | 46.5% | +11.2 | ||
| Luke Graham | Conservative | Male | 22,384 | 38.7% | -2.8 | ||
| Lorna Robertson | Labour | Female | 4,961 | 8.6% | -11.4 | ||
| Iliyan Stefanov | Liberal Democrat | Male | 3,204 | 5.5% | +2.3 | ||
| Stuart Martin | UK Independence Party | Male | 382 | 0.7% | 0.0 |
| Election statistics | ||
| Majority | ||
| Votes | 4,498 | |
| Percent | 7.8% | |
| Rank (1 = highest %) | 546 | |
| Turnout | ||
| Constituency | 73.4% | |
| Region | 68.1% | |
| UK | 67.3% | |
| Constituency in 2017 | 70.6% | |
| Size of electorate | 78,776 | |
| Valid votes cast | 57,813 |