Short answer

The Qur'an commanded the marriage, to end an old Arab custom. Zaynab bint Jahsh was the Prophet's (ﷺ) own cousin. He had known her all her life. He himself had arranged her marriage to Zayd, his freed slave and adopted son. The marriage failed, and Zayd divorced her. In Arabia an adopted son counted as a son by blood, so no man could marry his adopted son's former wife. The Qur'an ended that custom. It told the Prophet (ﷺ) to marry Zaynab, so that believers would never face that difficulty again. He dreaded what people would say. The verse even corrects him for fearing people. Aisha, his wife, said that if he had ever hidden a verse, it would have been this one. So Islam teaches that the marriage was God's (﷾) command, and that he delivered it as he received it.

Read the full explanation

See your saved pages