Hudson singled, doubled, homered and scored three runs and Dave Berg also homered for the Blue Jays, who are undefeated in four Grapefruit League games.
Tony Alvarez doubled and drove in three runs and Mike Gulan scored twice for the Pirates.
Toronto starter Tanyon Sturtze pitched two scoreless innings while Pirates starter Brian Meadows allowed a run and three hits in three innings.
Vinny Chulk notched the win despite giving up two runs in the eighth and Brian Bowles tossed a perfect ninth for the save.
Loser Bobby Bradley surrendered four runs and two hits in the seventh without retiring a batter.