Bernie Sanders has won the Democratic primary in Michigan, US networks said, in an upset for frontrunner Hillary Clinton who was predicted to win the northern state.
"This has been a fantastic night in Michigan," Sanders said shortly before the race was called in his favor in the industrial state, one of four holding White House nominating contests on Tuesday.
With 97 percent of precincts reporting, the Vermont senator who has energized young voters with calls for greater economic equality took 50.1 percent of the Michigan vote, against 48 for Clinton.
The former secretary of state earlier claimed a big victory over Sanders in Mississippi, continuing a winning streak in the southern United States where she has so far cornered the large African American vote.
In the Republican camp, frontrunner Donald Trump scored major victories in both Michigan and Mississippi, extending his lead in the US presidential nominations race ahead of crucial contests next week.
Republican voters also had their say in a primary in Idaho, where the race was still too close to call, and a caucus in Hawaii.