Joao Plata had a goal and two assists as a first-half red made life difficult for the visitors.
The Claret-And-Cobalt sprang to life early, netting twice in the first quarter-hour. First, Kyle Beckerman's pass was flicked across the top of the Portland penalty area by Joao Plata to Luis Gil, who picked out the low far corner to beat Donovan Ricketts. Then Plata beat Portland defender Andrew Jean-Baptiste on the outside with pace to lash his own shot in past Ricketts.
The Timbers pulled one back in the 31st minute, when poor defensive pressure allowed Darlington Nagbe to set up and rip a shot from distance, though Nick Rimando will take a sizeable share of the blame for failing to keep the effort out.
Two events conspired to dent the odds of the Timbers pushing for an equalizer. Diego Valeri, arguably Portland's most dangerous player, was taken off with an injury shortly after the goal, and just before halftime, Ben Zemanski was shown the red card for a studs-up sliding challenge on Ned Grabavoy.
Poor set piece defense from Portland gave the hosts the next two goals. All alone in the box, Javier Morales had time to set himself up for a bicycle kick in the 55th minute, before Alvaro Saborio beat out the Timbers back line to head Morales' free kick in the 67th minute.
Sal Zizzo sored Portland's second in the 78th minute, following up a save from Nick Rimando on Jose Valencia and tapping home the loose ball.
The league-leading Royals move onto 48 points, seven ahead of Eastern Conference pace-setter Montreal, and eight ahead of Western Conference rival Los Angeles, although the Galaxy do have three games in hand.