A top performance from goalkeeper Kyriakos Stamatopoulos almost gave Canada a draw only for Jamaica to steal victory at the death.
A late header from Rudolph Austin sent Jamaica three points clear at the top of Group B at the CONCACAF Gold Cup as they defeated Canada 1-0.
Winfried Schafer's Jamaica dominated the contest at BBVA Compass Stadium in Houston but with Canada goalkeeper Kyriakos Stamatopoulos in inspired form, the match was on track for a scoreless draw until Austin struck in second-half stoppage time.
Stamatopoulos made four saves on Saturday but was unable to deny Austin in the 92nd minute, as he powered his header into the net from six yards from Adrian Mariappa's right-wing cross.
The win was no more than Jamaica deserved and took them to four points in Group B's standings, ahead of Costa Rica, El Salvador and Canada (all 1 point).
Full-back Kemar Lawrence went closest in the first half for the Caribbean team, surging into the box past Nik Ledgerwood and shooting from a tight angle, but Stamatopoulos' glove took enough off the shot for David Edgar to clear the ball off the line.
In the second half, Edgar's foul on Jobi McAnuff gave Jamaica a good dead-ball opportunity at the top of the box and striker Giles Barnes hit the bar.
But all that was forgotten as Austin ran to the corner flag to celebrate his first international goal in six matches.
Jamaica had showed some impressive attacking intent in their opening match against Costa Rica and the positivity of Schafer's men was again on display early in Houston, with Simon Dawkins surging past a defender and forcing Stamatopoulos into a low save in the ninth minute.
By comparison, Canada's first game had been characterised by Cyle Larin's inexplicable miss, with Tosaint Ricketts reinforcing the reputation of Benito Floro's side in the 12th minute, shooting straight at Dwayne Miller when through on goal.
Jamaica almost hit the front just before the half-hour mark but Edgar saved Canada with his clearance of Lawrence's shot, while on the cusp of half-time, Stamatopoulos did enough in an aerial challenge to turn Mariappa's header away for a corner.
The Caribbean nation continued to have the better of the chances after the break with Dawkins flashing a header wide of the back post before Barnes hit the bar.
Floro had substituted Larin for Marcus Haber at half-time but it hardly made a difference for Canada, as Jamaica kept them pinned back.
A stumble from Stamatopoulos almost saw Darren Mattocks' scuffed shot loop into the net in the 66th minute but Canada's gloveman recovered to make the save, while the 35-year-old parried Barnes' 20-yard drive away soon after.
As the match wore on, Jamaica continued to push but after Mattocks poked the ball wide in the 87th minute, only one result seemed likely until Austin decided the contest with almost the final play of the game.