On July 11, 2012, Johnson was traded to the Brooklyn Nets in exchange for Jordan Farmar, Anthony Morrow, Jordan Williams, Johan Petro, DeShawn Stevenson and a 2013 first round draft pick. After a slow start to the 2012–13 season, Johnson began to pick up his play in December, with a 32-point game against the Golden State Warriors on December 7 and a game-winning buzzer beater in double overtime against the Detroit Pistons on December 14. After scoring 33 points in a road win over the Oklahoma City Thunder on January 2, he hit another game winner in double overtime two days later to beat the Washington Wizards. In a 113–111 victory over the Milwaukee Bucks on February 19, Johnson made the game-tying three-pointer with just under three seconds to go in regulation and went on to hit the game-winning pull-up jump shot in overtime. With this win, the Nets snapped a thirteen-game losing streak against the Bucks. The next game the Nets played, Johnson injured his left heel and was forced to miss three games. He made his return on March 1 against the Dallas Mavericks.