Silva allowed four hits and one walk with the Pirates' run coming in the seventh inning when Lastings Milledge scored on a Jason Jaramillo sacrifice fly. Silva retired 13 of the first 14 batters he faced Monday and became the first Cubs starting pitcher to start his career 8-0 since King Cole in 1910.
Chicago supported him with a 10-hit attack led by Marlon Byrd, who had three hits and two runs batted in, in beating Dana Eveland (0-1). Cubs lead-off batter Ryan Theriot had two hits and two walks and scored four runs.
Theriot opened the game with a double and scored his first run on a Jeff Baker sacrifice fly. Baker had a third-inning double that again allowed Theriot to reach home. The Cubs made it 3-0 in the fourth when Byrd, who was hit by a pitch, scored from first on Geovany Soto's double.
Byrd had an RBI single in the seventh before the Pirates got on the board. Chicago added two runs in the ninth with Derrick Lee and Byrd contributing run-scoring hits.
Monday's game was a makeup contest from last Wednesday, when the field was ruled unplayable.
Senate Democrats to pull all-nighter on climate change
Jessica Simpson shares three-way kiss with friends in photo