| Candidate name | Party | Gender | Number of votes | Share (%) | Change vs. 2017 for party (percentage points) | ||
| David Duguid | Conservative | Male | 21,182 | 50.1% | +2.2 | ||
| Paul Robertson | Scottish National Party | Male | 17,064 | 40.4% | +1.3 | ||
| Alison Smith | Liberal Democrat | Female | 2,280 | 5.4% | +1.9 | ||
| Brian Balcombe | Labour | Male | 1,734 | 4.1% | -5.3 |
| Election statistics | ||
| Majority | ||
| Votes | 4,118 | |
| Percent | 9.7% | |
| Rank (1 = highest %) | 515 | |
| Turnout | ||
| Constituency | 63.4% | |
| Region | 68.1% | |
| UK | 67.3% | |
| Constituency in 2017 | 61.6% | |
| Size of electorate | 66,655 | |
| Valid votes cast | 42,260 |