In a clash billed as the Rage on the Red Sea, a spirited Joshua, 32, showed some aggressiveness and intent - a vast improvement from their first fight - but could not match the brilliance and ring savviness of the Ukrainian who improved his record to 20 wins from 20 contests.
Two judges scored the fight 115-113 and 116-112 to Usyk and the third gave it 115-113 to Joshua.
While there were some close rounds, Usyk - in just his fourth bout since moving up from cruiserweight to heavyweight - was the deserved winner.