Lansdowne and Leinster flanker Niall Ronan was crucially sin-binned in the second half against the Canadians as the Irish led 19-7.
And a series of defensive errors allowed Canada's Marco Di Girolamo, Ryan Smith and Justin Mensah-Coker get in for late tries.
Earlier, 23-year-old Ronan, Ballymena back row Michael McComish and Dolphin scrum-half Tomas O'Leary - notching his fifth try in five games at the Durban tournament - all touched down to cancel out a Dave Moonlight effort for Canada, but it proved not enough.
Belfast Harlequins fly-half Ian Humphreys also kicked two conversions, to end the tournament on 28 points. Ryan Constable's young side ran in fives tries - including a brace from O'Leary earlier - when edging the European number ones, Portugal.
In Pool action on Friday, Australia had to rely on a late Anthony Sauer try to edge out the young Irish 26-22.
O'Leary was in devastating form, bagging two tries with Humphreys and Niall O'Brien of Clontarf - a replacement for Connacht's Chris Keane - also on target.
Last year's champions England continued their strong form from Dubai, scoring five tries, including a brace from Newcastle Falcons' teenager Matthew Tait, to Ireland's three in their 31-19 win. Humphreys, who ended the day on 20 points, and Leinster pairing James Norton and Dave Hewitt exposed the English rearguard for Ireland's scores.
23-year-old Norton grabbed his second against Kenya, but the Africans claimed their second win in the space of a week against the Irish - winning 21-14, with the lively McComish tagging on a late, second try for Constable's side.
Results:IRB South Africa Sevens, George - Bowl Semi-final:
Bowl Quarter final:
Portugal 17 IRELAND 29Scorers: Ireland: Tomas O'Leary 2 tries, Martin McPhail, James Norton, Mark Bruce try each; Ian Humphreys 2 cons
Australia 26 IRELAND 22Scorers: Ireland: Tomas O'Leary 2 tries, Ian Humphreys try, con; Niall O'Brien try
England 31 IRELAND 19Scorers: Ireland: Ian Humphreys try, 2 cons; Dave Hewitt, James Norton try each
IRELAND 14 Kenya 21Scorers: Ireland: James Norton, Michael McComish try each; Ian Humphreys 2 cons