Samardzija (1-1) was making only his third career start and first of the season. He limited the Cards to six hits and four walks over 5 2/3 frames, striking out one.
Alfonso Soriano drove in a pair of runs for the Cubs, who won for the third time in four games.
St. Louis lost for the fifth time in seven contests and dropped seven games behind first-place Cincinnati in the National League Central.
Cards starter Jaime Garcia (13-8) absorbed the defeat, giving up seven hits and four runs (two earned) over six innings.