Sporting KC lost ground in the race for top spot in the East, ending up on the wrong end of a five-goal thriller.
Chance Myers got the party started early, the Sporting defender heading home Matt Besler's throw-in less than a minute into the match.
Portland responded in the 25th minute with a headed goal of their own, Ryan Johnson nodding in Diego Valeri's corner.
Myers restored his side's lead a few minutes later, cleaning up in the box after a free kick.
And just a few minutes after that, the Timbers responded, with Johnson again key. His run down the left channel on the counter drew the defense away from Darlington Nagbe, who had an easy job to level it.
Portland flipped the script ion the second half and took the lead in the 58th minute. Rodney Wallace made an excellent run at goal from the left flank, and Diego Chara threaded a ball of matching quality. Wallace then showed great composure to finish past Jimmy Nielsen and give Portland the win.