Marco Materazzi's side had made it two wins out of two thanks to a 2-1 win over Kerala Blasters on Thursday.
Bernard Mendy's strike gave them all three points on that occasion, but Chennaiyin were unable to maintain their perfect start to the campaign as they were soundly beaten in New Delhi.
The visitors got off to a terrible start as Wim Raymaekers put Delhi ahead inside the opening minute, and their advantage was doubled by Mads Junker 20 minutes later.
Former Brazil international Elano, who had also scored in the victory over Kerala, halved the deficit midway through the second period but Bruno Herrero's penalty 11 minutes from time dashed any hopes of a comeback.
Gustavo Marmentini then rounded off the scoring in stoppage time as Delhi earned their first win of the season.
An ill-tempered affair between Goa and Atletico de Kolkata ended with leaders Atletico prevailing 2-1 on Thursday.
Goa led 1-0 at the break thanks to Andre Santos' goal, but tempers flared as the players left the field at the interval, which led to a fracas between Goa's former World Cup winner Robert Pires and Atletico coach Antonio Lopez.
Lopez is alleged to have struck Pires in the face, and has received a four-match ban and a Rs.500,000 fine, while Pires has been suspended for two games and been handed the same financial punishment for his part in the altercation.
Atletico had the last laugh, as a brace from Cavin Lobo took their tally to 10 points from four matches.
Elsewhere, NorthEast United defeated 10-man Mumbai City 2-0 away from home.
The visitors were already leading 1-0 through Kondwani Mtonga's 57th-minute opener, and their cause was helped when Mumbai defender Pavel Cmovs was shown a second yellow card with 15 minutes remaining.
Guilherme Batata then sealed victory in stoppage time as United climbed to second in the table.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.