Kinlochshiel reached their first Camanachd Cup final with a 2-0 victory over 21-times winners Kyles Athletic at Taynuilt.
Kyles fought off an injury nightmare to challenge strongly in a game settled in stoppage time.
Daniel MacVicar scored four – including a hat-trick in less than two minutes – as Oban Camanachd thrashed Ballachulish 10-0 in the Celtic Society Cup.
Glenurquhart upset Lovat with a 3-2 MacTavish Cup first-round victory.
And the highlight of the interim leagues was a five-goal blitz from Ewan Fraser as Glasgow Mid Argyll defeated Aberdour 6-2.
It took almost an hour for Kinlochshiel to break down a resolute Kyles side and club legend Keith MacRae gave them the lead before Jordan Fraser added their second in the 91st minute.
Their final opponents will be Kingussie or Lovat, who meet in the last four next Saturday.
At Ballachulish, MacVicar got Camanachd’s opener in the Celtic Society Cup after just four minutes and then put his team 4-0 up with his whirlwind hat-trick midway through the first half.
Daniel Cameron got two and Garry Lord, Conner Howe, Innes Jackson and Ross Campbell grabbed one each to complete the rout.
A first-minute goal from David MacLennan set Glenurquhart on their way and Connor Golabek doubled the lead. Greg Matheson soon made a game of it with a penalty, but John Barr equally quickly restored the two-goal cushion before Matheson got a late second for Lovat.
Had MacVicar been less prolific, Fraser’s first three for Mid Argyll in just eight minutes early in the second half might have been the day’s fastest hat-trick. Fraser added two more late on, with Brian Slattery having started the scoring. David MacKenzie and Ruairidh Reid struck back for Aberdour.
Newtonmore had a 5-1 home league win over Caberfeidh with two from David MacDonald and one each from Iain Robinson, Max Campbell and Declan Brannan. Caberfeidh’s consolation came from Kevin Bartlett.
Also in the senior leagues, Fort William had a 2-1 home win over local rivals Lochaber. Grant Disher put Fort ahead, Jack Dignan provided a quick equaliser and Lewis Morrison’s strike proved to be the winner.