The 25-year-old golfer from Lubbock, Texas, finished at 4-under 280 to win by two strokes over six other players.
"When I woke up this morning, I just felt like it was going to be a good day," said the 6-foot-2 O'Hair, who won $954,000.
Stewart Cink had led going into the final round but slipped to a 74 and was passed by O'Hair on the back nine.
O'Hair's other win was at the John Deer Classic in 2005.
Attkisson leaves CBS News, reportedly over network's 'liberal bias'
Duggar sisters unveil Christian dating rules in new book