The home side got off to a great start when Chance Myers headed home from Matt Besler's long throw into the penalty area.
Diego Valeri almost got the visitors level within minutes as he raided down the left and launched a looped effort at goal, which smacked off the crossbar and was cleared.
Portland were finally level when Johnson rose highest in the penalty area to head Valeri's corner into the roof of the net.
However, Kansas regained the lead almost immediately as the Myers struck again turning the ball in from close range after Portland had failed to clear their lines for a free kick.
This lead lasted only minutes as Portland equalised again through Nagbe as he tapped the ball home into an empty after being teed up Johnson.
After the break, Portland took the lead as Diego Chara won the ball in midfield and found the run of Rodney Wallace, who made no mistake in dispatching the ball past Nielsen.
Kansas pushed late on to get an equaliser and came close through Aurelien Collin, but his header was well saved by Donovan Ricketts to win the game for his side.