NSW set WA 169 to win having made 179 in the second innings, with Ed Cowan making 55, until Simon Mackin blitzed through the line-up taking 6-43 for the home side and Matt Kelly 4-25.
It was a full team effort from WA, reaching the target with six wickets down.
Shaun Marsh top-scored with 39 while Cartwright (32), Will Bosisto (22) and Ashton Turner (22) made good contributions.
NSW kept fighting to make things interesting but WA's attacking approach meant they reached 6-172 in the 35th over.
Gurinder Sandhu took 2-22 for the Blues while Copeland, Charlie Stobo, Mickey Edwards and Nathan Lyon took a wicket each.
The win is WA's second of the Shield season and puts them in the hunt for the final with four games to go.
NSW are likely to concede top spot on Sunday if Queensland finishes the job against Tasmania.