The Olympic marathon champion completed the course in one hour 59 minutes and 40 seconds around Vienna's Prater Park.
Kipchoge tweeted about the achievement and shared a video, with caption "History".
The marathon was organised by British chemical company INEOS and named the run as INEOS 1.59 challenge.
"HISTORY IS MADE! For so long, so many thought it was impossible, but @EliudKipchoge becomes the first human to run a sub-two-hour marathon. #INEOS159 #NoHumanIsLimited," INEOS 1.59 Challenge tweeted.
It was Kipchoge's second attempt to break the barrier as he had missed out earlier on becoming the first athlete to complete a marathon under two hours.
He had fallen short by 26 seconds in Monza two years ago.