The three cities, which in IOC-speak were granted formal candidate status, were the only remaining bidders in the race after the Swedish capital Stockholm, Krakow in Poland and Lviv in Ukraine pulled out.
The IOC's president, Thomas Bach, told reporters that a meeting of the Olympic body's executive committee had "extensively discussed" the bids of Beijing, Oslo and Almaty during a session on Monday.
"These three candidates have totally different approaches in terms of heritage, budget, infrastructure, but all impressed us," he said at the IOC's Lake Geneva-shore headquarters in the Swiss city of Lausanne.
The 2018 Winter Olympics will take place in Pyeongchang, South Korea, while the 2014 edition was held in the Russian resort of Sochi.
Also Read
Bach underlined that the IOC does not have a one-size-fits-all approach to the Olympics.
"The cities are encouraged to produce bids that are best suited to their circumstances. The plans should reflect their own specific vision for how the Olympic Games can benefit their cities and regions to ensure positive, sustainable legacies for their populations. Oslo, Almaty and Beijing have addressed this," he said.
Kazakhstan's former capital Almaty, which remains the former Soviet republic's economic powerhouse, meanwhile aims to use the Olympics to transform itself into a sports, tourism and convention hub in Central Asia.
If Beijing were to win the bidding race, the Chinese capital would make history as the first city to hold both the summer and winter games, having hosted the 2008 Olympics.
The IOC said that Beijing aimed to build on the legacy of 2008, using venues built for those games and also create a winter sports centre for China, providing a springboard for the development of new tourism opportunities.