United (14-8-4) extended its lead to four points over second-place Sporting Kansas City in the Eastern Conference.
Bill Hamid earned his seventh shutout of the season and recorded the first assist in his five-year MLS career.
Hamid sent a long ball across midfield and Fabian Espindola flicked a header forward to Silva. Silva then beat Red Bulls goalkeeper Luis Robles to the ball and punched it forward to set up an open-net finish.
Johnson looped the ball over Robles in the 91st minute after he got behind the defense on a ball sent in from near midfield from Perry Kitchen.
New York (7-8-10) remained two points behind in the race for the final Eastern Conference playoff spot.