CONCACAF champions Atlante took a surprising lead after just five minutes to stun the European Champions League winners.
Forward Guillermo Rojas ghosted behind Mexican defender Rafael Marquez to meet a long ball and lob Barca keeper Victor Valdes.
Sergio Busquets leveled the score 10 minutes before the break with a low shot from inside the area after a flick from Ivorian midfielder Yaya Toure.
Ballon d'Or winner Messi, who is a frontrunner to win the FIFA World Player of the Year award, was introduced eight minutes after the restart and it took him two minutes to put Barcelona ahead.
He raced onto a deft pass from striker Zlatan Ibrahimovic, skipped past the keeper and slotted into an empty net.
In-form winger Pedro wrapped up the win on 67 minutes after some brilliant individual work from Andres Iniesta.
Barcelona will meet South American champions Estudiantes, who defeated Asia's Pohang Steelers 2-1 in the semi final, on Saturday as they seek to atone for their defeat to Brazil's Internacional in the 2006 final.