Former Runrig keyboardist Pete Wishart held on to his seat to deliver one half of an SNP clean sweep in Perthshire.
Mr Wishart won Perth and North Perthshire comfortably with 27,379 and a clear majority of 9,641.
He said the local campaign had been boosted by an influx of fresh supporters following the independence referendum.
He said: “This is my fourth election and it just gets sweeter every time. I pledge to serve everyone in this constituency, regardless of how they voted.”
Mr Wishart added: “What a stunning evening it has been. The scale of change is simply unprecedented. We have a responsibility to e the new voice at Westminster.”
Tory hopeful for Perthshire North Alexander Stewart conceded defeat while the ballots were still being counted.
“It is disappointing, because we have all put so much work into it,” he said.“But if we are seeing a tsunami happening across the whole of the country, it’s going to be difficult to swim against it.”
The SNP’s rising star Tasmina Ahmed-Sheikh snatched Ochil and South Perthshire from Labour.
She received 26,620 votes, a clear majority of more than 10,000.
Perth and Kinross Council leader Ian Miller said there was a real buzz about this year’s campaign.
The local SNP group leader said: “I’ve been out knocking on doors for a few weeks now and the response we have been getting has been fantastic.
“I’ve been in politics for 40 years but I have to say that this is probably the most exciting night of my career.
“From what I saw from the first ballot papers coming in, the entire Labour support has shifted to SNP. It’s just phenomenal.”
He added: “To think that we are in this position just a few months after the disappointment of the referendum result.”
The Perth and North Perthshire patch has been a key target for the Conservatives since the constituency was formed 10 years ago.
Although it has always been held by the SNP, it was regarded by some as a traditional Tory patch.
Result:
P Wishart (SNP) – 27,379
A Stewart (Conservative) – 17,738
S Nicholson (Labour) – 4,413
P Barrett (Lib Dem) – 2,059
L Ramsay (Green) – 1,146
J Myles (UKIP) – 1,110
Turnout 74.9%