Gerwyn Price will face Jonny Clayton in the all-Welsh final tomorrow at the 2021 World Grand Prix in Leicester after battling back from 2-0 down to win 4-2.
Price reeled off four straight sets to see off 'The Bullet' in a game full of controversy as 'The Iceman' was subjected to abuse from the crowd once more and nearly didn't come back on stage with complaints about his arm initially.
But he rallied back to see off the St Helens ace and will now look to defend his title tomorrow.
Bunting took the early impetus with a break of throw in the form of a 54 checkout which he consolidated. But he failed to get off and Price broke back.
Both failed to get off in their first turn with Price only hitting double five. When he kicked off though, it was a 180 but Bunting claimed the set with Price firmly not at his best early on and getting affected by the crowd.
A 42 checkout saw Bunting continue his dominance with Price averaging 70.
It was finally another 180 but no roar for Price. He returned for double 20 and finally let out a roar levied at the crowd.
A 171 set up left 132 with double 20 left from there with Bunting back on 202. Price returned to take the lead at 2-1.
He dropped his dart on the 170 and Bunting held for 2-2 on 55. Price missed 75 on double 20 and Bunting went 2-0 up in sets on double 10.
Price didn't emerge from the break and was given two minutes by the tournament director. He finally returned but Bunting got to business holding throw.
According to the tournament director, 'The Iceman' was getting twinges in his arm akin to the Nordic Darts Masters but still levelled it up at 1-1.
Bunting continued to play excellently producing a second 180 to leave 61 and with Price way back, he returned for double eight and a 2-1 lead as he went one away from a 3-0 sets advantage.
Price held throw with a 56 checkout but the onus was now on Bunting to hold but it was a maximum start from 'The Iceman'.
He put it onto a 170 for a nine-dart finish but couldn't claim the seventh dart. A 74 checkout on double 10 saw Price get a set back at 2-1.
Bunting missed double 20 for an 82 checkout and a break and Price pinned 60 on double 10 to hold. A 78 checkout saw him break and go 2-0 up with a hold seeing him level up.
A 134 set up was hit by Bunting and with price unable to claim 112, Bunting returned for double 20 to break and make it 2-1 as he looked to force a decider.
Bunting missed an 80 checkout to hold and Price returned for a 79 checkout to make it 2-2.
A 140 left Bunting on 58 for a hold suddenly after a poor leg but Price started with a 160 and with a 71 checkout made it level again.
Both kicked off 160 but it was Bunting who held with a 67 checkout to make it 2-1. A double 20 saw Price hold once more to make it 2-2 with a decider once more.
A 105 set up left 96 for Price to break and win the set as he went one away.
Price missed a 62 checkout to hold but Bunting couldn't take advantage and 'The Iceman' held.
A break on double 20 saw Price go 2-0 up and one away from the finishing line.
Both players hit 180's but Price missed his first match dart in the form of a 142 only to return to claim it.