The game started quietly with neither team threatening until the half-hour mark when Dynamo striker Cam Weaver spurned a great chance as he blasted the ball over the bar from close range.
After the break, the home side clicked into gear and nearly took the lead through Darlington Nagbe with a well-worked move, but he could only poke his effort wide of the post.
Minutes later, Portland did take the lead through Johnson as he tapped home Diego Chara's pinpoint cross from the right wing into the net from close range despite the best efforts of Tally Hall in the Houston goal.
Rodney Wallace almost made it 2-0 to the Timbers when Nagabe fed him a pass 25 yards from goal, but his left-footed shot smacked the underside of the bar and bounced out.
Portland were dominating the game and Wallace went close again but this time he was denied by Hall, who made a great reaction save to keep his effort out.
The Timbers weren't going to be denied their second and Johnson notched a brace when he collected the ball from Nagbe on the halfway line and ran the length of the field before blasting an effort past Hall to seal the win.