Roberts won 48 percent of the vote Tuesday to 41 percent for Dr. Milton Wolf.
He is expected to win easily in November in a state that has sent only three Democrats to the Senate, most recently in 1932.
Wolf, campaigning hard against the Affordable Care Act, also attacked Roberts as a politician who had lost touch with his home state. Roberts, 78, served eight terms in the House before entering the Senate in 1997.
During the campaign, Roberts admitted that he does not own a house in Kansas and joked in a radio interview that he visits the state "every time I have an opponent."
On primary night, Roberts said Republicans should not fight each other.
"We cannot afford a fractured party. The stakes are just too high," he told supporters at an Overland Park hotel.