Turnout was 12%, that's insanely low. There's no Senate race in VA this year, and their VA-Gov race was last year, so unless you really cared about an Eric Cantor vs a Some Guy, you weren't going to take the time to vote. The types of people that normally voted for Cantor were complacent seeing him vs a token opponent, and didn't show up to the polls.
And yes it's an anti-establishment vote. Apparently there was also noise about Cantor being Pro-Amnesty. People that voted were activated against that, and he lost.