Thomas Meunier's stoppage-time goal added more embarrassment for the Spanish giants - and heightened the pressure on Real manager Zinedine Zidane, whose win ratio is below 50% since returning to the club towards the end of last season.
Eden Hazard, making his first start for the visitors, showed some nice touches but struggled to influence proceedings, as a Real old boy stole the show.
Celebrating his 100th appearance in the competition, Di Maria opened the scoring with a close-range shot that crept inside Thibaut Courtois' near post from Juan Bernat's pass.
While Real's Belgian goalkeeper Courtois appeared to be caught out for the opening goal, he could do nothing to prevent the second.
Idrissa Gueye's fine work on the right created the opening for Di Maria, who found the bottom right corner superbly with a curling effort from 20 yards.
Hopes of a Real fight-back were briefly raised when Gareth Bale lobbed the ball magnificently over home keeper Keylor Navas from the edge of the penalty area.
However, his goal was ruled out for handball by referee Anthony Taylor after it was reviewed by video assistant referee (VAR) officials, as was Karim Benzema's offside effort late in the second period.
And a miserable night for Real and Zidane was compounded as Juan Bernat and Meunier, strolled through the visiting defence before Belgian full-back Meunier placed the ball into the bottom right corner.
It confirmed that PSG, who were without their entire first-choice strike force of Neymar, Edinson Cavani and Kylian Mbappe, halted a run of three consecutive defeats against the Spanish club.
No superstars, no problem for PSG
While Paris St-Germain were - on paper at least - noticeably under strength without their celebrated front three, they still easily had too much firepower for Real.
That was largely down to Di Maria, Pablo Sarabia and loan signing Mauro Icardi - supposedly the supporting cast - who exhibited the guile and movement to bewilder a Madrid defence shorn of the leadership of Sergio Ramos.
Di Maria in particular produced a performance that rolled back the years to his days patrolling the flank over five seasons at the Bernabeu.
The 31-year-old Argentina winger made almost 200 appearances for Real and was named man of the match as the Spanish giants claimed their 10th European Cup/Champions League trophy against neighbours Atletico in 2014.
Just as on that night in Lisbon, he was at his best with his elusive running and clever positioning, tormenting Real full-back Dani Carvajal.
Aside from scoring twice, Di Maria cut the visitors open on several occasions with Sarabia sliding an effort wide after being picked out by his colleague.
And Di Maria, whose exuberant celebrations after both goals will have rankled with Real supporters, could have rounded off his evening with a hat-trick - narrowly failing with a scooped effort over Courtois that landed on the roof of the Real net.
Real run into trouble
While Real Madrid have won the European football's most prestigious competition a record 13 times, this performance suggested they may struggle to negotiate the group stage.
Despite spending heavily in the summer, Zidane's side lacked the intensity and quality to compete for long periods and he will have been dismayed by the manner in which PSG scored their third goal.
Of his summer recruits, Hazard, Ferland Mendy and Eder Militao - the only starters - endured difficult evenings against a PSG team that pressed Real at every opportunity.
Forwards Luka Jovic and Rodrygo, meanwhile, were spectators worth a combined £90m until the Serbia forward was introduced in the 70th minute.
Yet even that did little to galvanise the La Liga club, who failed to register a single shot on target for the first time in 167 Champions League matches dating back to 2003-04.
In midfield, Luka Modric's absence was also heavily felt with Toni Kroos and Casemiro unable to wrestle control of midfield away from Marco Verratti, Idrissa Gueye and Marquinhos.
Man of the match - Angel di Maria (PSG)
'They were superior to us in everything they did' - what they said
Real Madrid coach Zinedine Zidane: "We didn't really ever get going. Here we are all in the same boat. When we win, we all win. When we lose, we all lose. This defeat is hard to take, but we have another game on Sunday [against Sevilla] and need to focus on that.
"They were superior to us in everything they did, and in intensity, which annoys me the most. They were good and created chances, but what worries me is that we played without intensity.
"We knew they'd pressure us. But we didn't really get properly into the game at any stage. Intensity is the most important thing on the pitch. You can have your worst game, but if you play with intensity, put your foot in, win challenges, you can win the game - but we didn't."
PSG coach Thomas Tuchel: "This was really a team performance without and with the ball. When we play without Neymar, [Kylian] Mbappe and [Edinson] Cavani, it can help. People say we're not favourites and it can take the pressure off. It's impossible to play every game without them, of course. We need every player.
"[Angel] Di Maria has been showing for a year that he's capable of this kind of performance. His left foot is extraordinary. He has exceptional statistics with us and he's always decisive with goals and assists. Defensively, he was very strong and humble as well. He closed out [Dani] Carvajal and worked well with [Juan] Bernat on the left."
Real suffer joint-heaviest group stage loss- the stats
Real Madrid have lost consecutive Champions League games for the first time since April 2013 under Jose Mourinho.
They failed to have a single shot on target against PSG tonight, the first time this has happened in the Champions League since Opta began collecting such data in the competition in 2003-04 (in 167 games).
Real Madrid suffered their joint-heaviest defeat on the opening matchday of a group stage campaign in Champions League history (also 0-3 against Bayer Leverkusen in 2004 and 0-3 against Lyon in 2005).
PSG have found the net in each of their past 25 Champions League matches, the current longest such run in the competition and the fourth longest in competition history behind Real Madrid (34 in April 2014), Barcelona (29 in March 2012) and Real Madrid (29 in September 2018).
Angel di Maria is the third player in Champions League history to score at least twice in a game against both Real Madrid and Barcelona, after Mario Jardel and Andriy Shevchenko. Di Maria netted his 19th and 20th Champions League goals in this match.