Josh Johnson pitches Marlins past Pirates 6-2