Monaco were taught a lesson in counterattacking football by Porto in their Champions League match on Tuesday and slumped to a 3-0 home loss after Vincent Aboubakar scored twice.
Monaco, who reached the semifinals last year and were runners-up to Porto in the 2004 final, have just one point from two matches. Porto secured their first win in Group G following an opening loss to Besiktas.
The Turkish side beat Leipzig 2-0 in the group's other game to lead with six points.
Monaco dominated early proceedings but lacked a cutting edge in the first half against a Porto side who defended extremely well. The hosts were punished near the half-hour mark for sloppy defending and Aboubakar made it 2-0 in the 69th minute on the break.
Radamel Falcao nearly pulled one back for Monaco three minutes later with a shot that rattled the crossbar before substitute Miguel Layun sealed Porto's win in the 89th.
Monaco dominated possession in the first half but did not trouble Porto keeper Iker Casillas.
The hosts' first chance came when Rachid Ghezzal intercepted the ball on the edge of the area and set up Falcao, only for the Colombia striker to mis-hit his low shot.
Monaco attacked well down the flanks and Adama Diakhaby, who started alonsgide Falcao up front, came close as he sent the ball over the bar from Ghezzal's cross, even though he received a yellow card for a handball in the box. Falcao was then left bleeding on the pitch following a clash of heads but was able to keep playing with his head bandaged.
Circulating the ball well, Monaco tried to unsettle Porto's defense with pace and change of direction, but the compact Porto side were left unfazed.
Porto went ahead against the run of the play. Diakhaby lost a one-on-one with Casillas, and Monaco defenders were at fault on the next move after failing to clear a long throw-in. Danilo forced Monaco goalkeeper Diego Benaglio into a save with a powerful effort, with the ball falling to Aboubakar. Benaglio then pushed Aboubakar's shot onto the post but could not prevent the Cameroon striker smashing the ball into the net from the rebound at his second attempt.
Trying to turn things around, Monaco coach Leonardo Jardim brought on Guido Carillo after the interval in place of Diakhaby. The switch had no impact as Monaco continued to struggle getting past the Porto defense marshalled by Alex Telles, and exposed itself to counterattacks.
Aboubakar made it 2-0 in the 70th minute on the break after midfielder Yacine Brahimi found Moussa Marega with a long ball. The forward centered the ball for Aboubakar, who beat Benaglio with a simple tap in.
Layun completed the rout from close range after Monaco defenders were once again outpaced on the break and failed to clear the ball following a series of shots.