The Belgian took the lead three times during the front nine at Finca Cortesin, only for the Northern Irishman to hit back at the next hole on each occasion.
A bogey at the par five 11th saw McDowell hand the advantage to his opponent, who then stretched his lead to two-up at the 13th.
Once again, the former US Open champion showed his mettle by hitting back to halve the deficit on the very next hole.
Colsaerts looked home and dry after making par at the 16th to restore his two-hole lead and could have wrapped up victory on the 17th green, but missed a four-foot birdie putt.
McDowell refused to give up and made his birdie to ensure a nervy final hole for the 29-year-old.
Both players made par on the final hole, giving Colsaerts only his second win on the European Tour.