The Union scored three times in the second half of a game that began in a driving rainstorm and ended with Chivas USA having just 10 men on the field.
Philadelphia (8-6-6) moved into a second-place tie with Kansas City in the Eastern Conference, one point behind Montreal. Chivas USA (3-11-5) is stuck in last place in the West after seeing its winless streak reach 14 matches.
Jorge Villafana scored in the first half for Chivas USA after Philadelphia defender Amobi Okugo slipped on the wet turf.
Brian Carroll tied it in the 58th when a low cross into the box from Conor Casey bounced off Carroll's back and into the net.
Philadelphia then took the lead after referee Jorge Gonzalez called Josue Soto for an illegal back pass. Not only was it Soto's second yellow card of the game, bringing about his dismissal, but the indirect free kick from inside the penalty area led to Farfan's go-ahead goal.
Casey finished the scoring in the 89th minute.
Exploding whale video goes viral on Internet
Couple mistakenly served bag of cash at McDonald's drive-thru