Spirit rebound from thrashing to grab win