Soria retired both batters he faced to earn his first save for the Pirates. He was traded from Detroit earlier in the week.
Melancon allowed a double and a hit batter before being ejected with the tying run at the plate.
Dickey did not allow a run over seven innings of work and only permitted two hits. He also struck out six and walked two. He received the win for his effort and is now 6-10 with a 4.06 ERA.
Dickey has now won his last three starts and has earned a quality start in each of his last five starts.
Norris allowed just one run on four hits in seven innings with one walk and five strikeouts. His lone hiccup landed over the fence in the fourth, courtesy of Chris Davis. He retired the next 12 batters he faced.
The left-hander was making his first major league appearance since April 30.
The victory snapped a five-start winless streak for Morton. He was 0-3 with two no-decisions since his last win, on June 27.
Morton pitched seven shutout innings, allowing five hits. He didn't walk a batter and struck out a season-high seven.
The game featured several hit batsmen and got ugly when the benches emptied.
Melancon has not allowed an earned run since May 11.