The Dutchman was unable to deliver a victory in front of his home fans in Amsterdam as Price powered to the £70,000 prize.
A high-quality start saw the pair trade 14-darters in the opening four legs before Price broke for a 3-2 lead, and he then pinned tops to open up a two-leg cushion.
Three successive legs from Van Duijvenbode saw him move ahead again at 5-4, and he added a 12-darter as he retained the edge.
Price took out 146, 121 and 116 as he came from 7-6 down to lead 9-8 - pouncing on a miss at double 18 from Van Duijvenbode in leg 17.
The 30-year-old - who had taken out 112 in leg 15 - hit back with a superb 11-darter and fired in double four to move 10-9 up, putting himself on the brink of a maiden big-stage title.
Price showed his class with a 12-darter to take the final to a deciding leg, and after being first to a finish during a tense finale, the Welshman took out 90 to seal glory.
Van Duijvenbode's run to a third televised final sees him qualify for November's Cazoo Grand Slam of Darts.
June's Dutch Darts Masters runner-up, he had battled past Haupai Puha and Gary Anderson to reach the final day of action, before surviving a missed match dart from Ryan Joyce in the penultimate leg of their quarter-final.
He then ended Jonny Clayton's title defence with a superb 11-8 semi-final success, only to lose out narrowly to Price.
The loss for Van Duijvenbode was a repeat of the 2020 World Grand Prix final, and provided further big-game experience in his bid to claim major honours.
"I was a bit unfortunate in the last leg and he showed his class," said Van Duijvenbode, who earned £30,000 as runner-up.
"It's a bit frustrating because apart from that class, I could have won it in the end if I just composed myself better."