The Capitals made a respectable 170-7 from their 20 overs after being asked to bat first by the Warriors.
Englishman Sam Billings led the way for Dubai with 52 while Zimbabwean Sikandar Raza hit 48 against 3-28 from Australian Daniel Sams and a pair of wickets, each, for Chris Woakes (2-21) and Maheesh Theekshana (2-32).
The Warriors then reached 171-5 with seven balls to spare to seal the win.
Charles needed only 51 balls to make 93, hitting eight fours and three sixes in the process.
He was supported by some good late cameos by Basil Hameed (24*) and Daniel Sams (16*).
Dushmantha Chameera led the way with the ball for the Capitals with 4-28 from his four overs.
After winning the toss and choosing to bat first, the Capitals were reduced to just 104 all out off 18.2 overs.
Sikandar Raza (22), Roelof van der Merwe (21), David Warner (16) and Rovman Powell (10) were the only Capitals batsmen to scratch double figures.
Theekshana produced a masterful spell of bowling to take 4-20 from his four overs while being well supported by Daniel Sams’ 3-28 off four.
The Warriors then needed only 13-1 overs to reach 105-1 and secure their third win in five games.
Charles top-scored with an unbeaten 43 off 33 balls including four fours and one six. Joe Denly was Charles’ partner at the crease with an unbeaten 23 off 16 balls. Earlier, Niroshan Dickwella made a 30-ball 37.
Holder’s three wickets for 36 runs, included the scalp of fellow West Indians Dwayne Bravo (two) and Akeal Hosein (seven), as well as Will Smeed (five), as Pooran’s MI Emirates, were restricted to 159-9, before being put to the sword by Dubai Capitals, who easily got to 160-3 with four overs to spare.
Scores: MI Emirates 159-9 (20 overs); Dubai Capitals 160-3 (16 overs)
Zimbabwe’s spinner Sikandar Raza also bagged three wickets for 21 runs from his four overs for the Capitals and was later named Man-of-the-Match, as his combination with Holder offered the opponents very little room to play their shots.
In fact, apart from opener Muhammad Waseem’s 26-ball 51 which included four sixes and two fours, only Andre Fletcher (30), Pooran (21) and Australian Tim David (27), got into double figures for MI Emirates, who were sent to bat by Dubai Capitals captain David Warner.
Fletcher had two sixes and three fours in his 18-ball knock, while Pooran had a solitary six and four in his 23-ball innings.
The Capitals run chase started shakily, as they lost Warner (one) with 15 runs on the board.
However, Afghanistan’s Rahmanullah Gurbaz (81) and 21-year-old Australian Jake Fraser-McGurk (54), steadied the innings with a 114-run second-wicket stand that erased whatever hopes MI Emirates had of securing victory.
Gurbaz slammed four sixes and eight fours in his 39-ball knock, while Fraser-McGurk, who was brought in for Paul Van Meekeren, had four sixes and four fours in his innings which used a mere 25 balls.
After both fell, Englishman Sam Billings (13 not out), and West Indies T20 captain Rovman Powell (seven not out), saw the Capitals to victory.
New Zealand’s left-arm seamer Trent Boult led the Emirates bowling with two for 23 from four overs.
Batting first, Dubai Capitals mustered 152-5 from their 20 overs. In reply, MI Emirates scored 152-2 from 16.4 overs.
Dubai Capitals owed their total to George Munsey who scored 51 from 43 balls, Sikander Raza, 38, and Rovman Powell, 30. No other batter got into double figures against the tight bowling of Trent Boult 2-19 and Rashid Khan 2-20. Darren Bravo who dismissed Powell took 1-35.
Whatever struggles Dubai Capitals had on the pitch were barely evident when MI Emirates batted as Fletcher scored an unbeaten 68 from 45 balls, hitting four fours and four sixes along the way.
Pooran, who was named Player of the Match, was even better with his unbeaten 66 coming from just 36 balls and included three fours and five sixes as they raced to victory with 20 balls to spare.
Together, the Caribbean men scored 104 runs from 58 balls in what was a dominant performance.
After being put in to bat by the Capitals at the Dubai International Cricket Stadium, MI piled up an intimidating 208-3 from their 20 overs.
Pooran, batting at number four, led the way with a 27-ball 57* including two fours and six sixes while Fletcher, who batted at three, provided excellent support with 53 off 37 balls including three fours and four sixes.
Openers Muhammad Waseem and Kusal Perera each had good contributions as well making 43 and 38, respectively.
Left-arm wrist spinner Zahir Khan was the Capitals best bowler on the day with 1-21 from his four overs.
The Capitals were then never able to recover from losing in form opener Leus du Plooy off just the second ball of the chase when he was trapped in front by Akeal Hosein.
Captain Sam Billings and Tom Banton tried their best with 40 and 35, respectively, but it proved to not be enough as Dubai were eventually restricted to 163-7 from their 20 overs.
Jason Holder made 24 while Rovman Powell made just eight.
Trent boult was excellent with the ball taking 2-20 from four overs while Vijayakanth Viyaskanth took 2-24 from his four overs.
Pooran was adjudged player of the match while Capitals all-rounder Sikandar Raza was named player of the tournament.
Full Scores: MI Emirates 208-3 off 20 overs (Nicholas Pooran 57*, Andre Fletcher 53, Muhammad Waseem 43, Kusal Perera 38)
Dubai Capitals 163-7 off 20 overs (Sam Billings 40, Tom Banton 35, Trent Boult 2-20, Vijayakanth Viyaskanth 2-24)
Capitals skipper Powell top scored with 48 while Indian Robin Uthappa got 43 to lead the team to a competitive 187-6 from their 20 overs.
Powell’s knock came off just 29 balls and included three fours and as many sixes while Uthappa’s innings lasted 33 deliveries with three fours and one less six.
Joe Root and Sikandar Raza also both chipped in with 26, respectively, against two wickets apiece from Ravi Rampaul (2-36 from four overs) and Ali khan (2-45 from three overs). Captain Sunil Narine and Andre Russell were the other wicket-takers.
Powell also produced the goods with the ball with 2-15 from two overs as the Knight Riders were reduced to just 114-9 off their 20 overs
Mujeeb Ur Rahman was also excellent with the ball conceding just 16 runs in four overs to go along with his two wickets.
Paul Stirling was the only Knight Riders batsman to produce any resistance with a 38-ball 54 including five fours and two sixes.
Powell, the Player of the Match, hit four fours and 10 sixes while powering Dubai Capitals for 222-3 from their 20 overs. Powell featured in a second-wicket partnership of 121 from just 57 balls with former England captain Joe Root, who scored 82 from 54 balls.
Root and Robin Uthappa had laid the foundation with an opening stand of 78 from 53 balls before the latter was dismissed for 26.
Powell was eventually dismissed by Kieron Pollard from the last ball of the innings, but the damage was already done.
Chasing the highest score in the tournament so far, MI Emirates lost three wickets for 26 runs early including that of Nicholas Pooran for a duck in the sixth over.
His dismissal brought together Pollard and Andre Fletcher and together that made things interesting for Dubai that came into the game on the back of three consecutive losses.
Together, Pollard and Fletcher went on the offensive smashing balls to all parts as they stitched together a stand of 118 with the Trinidadian scoring the bulk of those runs, 86 from 38 balls with eight fours and six sixes before he was dismissed by Powell in the 16th over with his side still needing 79 from the last 24 balls.
Najibullah Zadran got them closer with a quickfire 30 from just nine balls but once he fell, yorked by Fred Klaasen in the 19th over, the remaining runs proved elusive despite the best efforts of Fletcher, who remained unbeaten on 35 at the end with MI Emriates on 206-5.
Leus du Plooy, with an unbeaten 40-ball 63, Tom Banton (38) and Tom Abell, unbeaten on 20, saw Dubai Capitals to victory at 139-1 with 25 balls to spare, after Gulf Giants, the team of West Indians Shimron Hetmyer and Carlos Brathwaite, were restricted to 138-6 from their allotment. Captain James Vince led the Giants from the front with a 53-ball 58, including four fours and two sixes, but lacked the necessary support, as Usman Khan (21) and Chris Jordan (30), were the next best scorers.
Holder, who was among five Capitals bowlers with a wicket apiece, ended with one for seven in two overs. By virtue of their win, Dubai Capitals booked a date with Nicholas Pooran's MI Emirates to decide the champions of this second edition of the tournament.
Scores: Gulf Giants 138-6 (20 overs); Dubai Capitals 139-1 (15.5 overs)
After suffering a 45-run defeat to MI Emirates in Qualifier 1, Gulf Giants would have hoped for better fortunes on this occasion, but those hopes were dashed as they lost Khan, Chris Lynn (zero), Jordan Cox (two) and Jamie Smith (zero), with just 40 runs on the board.
Hetmyer (eight), also had a brief stay in the middle, but despite the setback, Vince pushed on with some expansive shots that added some respectability to the innings before he eventually holed out to Powell off Olly Stone with the score at 117-6.
Jordan then smashed two sixes and a solitary four in his 29-ball knock, while Jamie Overton added 12 runs to the total in a six-ball cameo.
With just 139 to get, Plooy and Banton went on the charge in a 98-run opening stand, which all but signalled the writing on the wall for Gulf Giants. Banton had four boundaries in his run-a-ball 38, before he fell to Liam Dawson.
Abell joined Plooy, and the two posted an unbeaten 41-run stand for the second wicket to push the Capitals across the line. Plooy had five fours and three sixes in his knock, while Abell had two boundaries and a solitary six.
Powell and Holder will rub shoulders with fellow West Indians, Pooran, Dwayne Bravo, Kieron Pollard and Akeal Hosein, in the showpiece contest on Saturday.
Though scans showed no fracture after he was clattered on the boot by a Mitchell Starc yorker, a gritty Joseph battled through pain on the fourth day to produce one of the greatest spells in Test history. The 24-year-old Guyanese claimed seven wickets for 68 runs to inspire West Indies to a famous eight-run win - their first victory in Australia since 1997.
Interestingly, Joseph was not expected to feature on the day, but with the help of team physio and painkillers, he defied the injury and bowled a remarkable spell that will forever be etched in the minds of cricket enthusiasts.
Following his heroics, Joseph was due to head straight to the ILT20 having signed with Capitals, the team of West Indies T20 captain Rovman Powell, before the Australia tour, but will now return home to recover before travelling to the PSL where he was signed as a replacement by Peshawar Zalmi.
Still, with his stocks rapidly rising, Joseph is unlikely to be short of offers from T20 leagues around the world after the stunning start to his Test career where he claimed Steven Smith with his first delivery and claimed two five-wicket hauls.