He had been under pressure from poor polling, a looming election, and a revolt by conservative MPs.
Mr Morrison, the current treasurer, won an internal ballot 45-40 over former Home Affairs Minister Peter Dutton, said Liberal Party whip Nola Marino.
Mr Turnbull did not stand in the leadership contest.
He had agreed to hold the ballot after a majority of party MPs signed a letter calling for it to take place.
Mr Turnbull had been staring down calls for his resignation as leadership speculation crippled his government.
On Thursday, he told reporters that Australians would be "rightly appalled by what they are witnessing".