New recruits Wissam Ben Yedder and Henry Onyekuru both started up front but neither striker made an impression as Monaco slipped to the foot of the table without a point.
Habib Diallo gave Metz an 11th-minute lead from the penalty spot before Monaco's Ruben Aguilar was red-carded after 33 minutes with his exclusion coming a week after Cesc Fabregas was sent-off in the opening 3-0 loss at home to Lyon.
Diallo added his second of the night in the 54th minute with Renaud Cohade completing his team's easy win on 67 minutes.
Last season's runners-up Lille suffered a 1-0 defeat at neighbours Amiens after a 72nd minute goal from Serhou Guirassy.
Lille played all of the second half a man short after Boubakary Soumare was handed a 39th-minute red card.
Marseille wasted a penalty before finishing the match clinging to a 0-0 draw at Nantes.
For both teams the stalemate yielded a first point of the young season.
Marseille had a chance to score their first goal of the campaign after VAR detected a handball in the home box in the 31st minute.
But Argentine striker Dario Benedetto, Marseille's marquee summer signing, smashed the penalty kick high over the bar.
The home team took control in the second half and finished the match besieging the Marseille goal.
Nantes managed a total of 19 shots, six of them on target. Marseille totalled nine, only two on target.
Last weekend, Marseille opened the season with an embarrassing 2-0 home defeat to Reims while Nantes lost away to last season's runner's up, Lille.