Astros hand Cubs 7th straight loss with 8-4 win