Cards pound Astros 8-1 to avoid sweep