Birmingham sprung a major surprise by thrashing high-flying Crystal Palace 4-0 at Selhurst Park on Friday evening.