Wes Brown marked his return from injury with a goal as Sunderland defeated Tottenham to reach Saturday's Barclays Asia Trophy final in Hong Kong.
The 33-year-old, who last played in pre-season a year ago, headed home David Moberg Karlsson's 64th-minute corner after new boy Cabral had cancelled out Gylfi Sigurdsson's opener, before Karlsson himself made sure with a third at the death.
Kick-off at the Hong Kong Stadium was delayed for half an hour by torrential rain which left surface water on the pitch, and the decision was taken to restrict the match to two 40-minute halves when it did eventually get under way.
There was no Gareth Bale, linked with a move to Real Madrid by reports in Spain, in the Spurs side because of injury, while Black Cats boss Paolo Di Canio included summer signings Vito Mannone, Cabral, Emanuele Giaccherini and Jozy Altidore.
Conditions remained difficult, but the Londoners took the lead with 28 minutes gone when full-back Kyle Walker broke down the right and squared for Sigurdsson, whose snapshot was unwittingly deflected past keeper Mannone by John O'Shea.
Sunderland levelled within six minutes when Altidore capitalised on Tom Huddlestone's error to play in midfielder Cabral, who finished adeptly.
Altidore passed up a golden opportunity to open his account two minutes after the restart and after half-time substitute Jan Vertonghen had departed on a stretcher following an awkward landing, Mannone saved well from Emmanuel Adebayor.
The Italian produced a fine stop to deny half-time substitute Jermain Defoe on the hour, but Brown headed the Black Cats in front from replacement Karlsson's 64th-minute corner.
Altidore might have made sure nine minutes from time but was denied by Brad Friedel, but the keeper could do nothing to prevent Karlsson from making it 3-1 in the final minute.