Portland was the favourite heading into Sunday, given it had won five of the previous six meetings with the Pigeons and boasted home advantage at Providence Park, but fell behind to Valentin Castellanos' first-half header.
Felipe Mora dramatically levelled things up in the final minute of stoppage time, but neither side could find an extra-time winner, meaning penalties were required to split the two sides.
Johnson then produced two fine stops against Alfredo Morales and Diego Valeri in the shootout, while Alexander Callens converted the decisive spot-kick to secure the first title in New York's history.
Castellanos squeezed a header underneath Steve Clark from Moralez's free-kick to open the scoring four minutes before half-time, the forward becoming the first player since Jozy Altidore and Nicolas Lodeiro in 2016 to score in three straight postseason appearances.
Sebastian Blanco drilled just wide from long range in response on the stroke of half-time, though Portland looked timid despite having tasted victory in their last four matches against Ronny Deila's side by an aggregate score of 8-1.
Clark tipped Moralez's free-kick onto the crossbar after the interval, before an equaliser eventually arrived for Giovanni Savarese's men in the final moments when Jaroslaw Niezgoda's strike deflected to Mora, who finished into the bottom-right corner to send the final to extra-time and subsequently penalties.
Johnson and Clark traded penalty stops against Mora and Morales before Callens powered down the middle to secure victory after Valeri was denied by the New York goalkeeper.