Genesis 38:8-10 New International Version (NIV)
8 Then Judah said to Onan, “Sleep with your brother’s wife and fulfill your duty to her as a brother-in-law to raise up offspring for your brother.” 9 But Onan knew that the child would not be his; so whenever he slept with his brother’s wife, he spilled his semen on the ground to keep from providing offspring for his brother. 10 What he did was wicked in the Lord’s sight; so the Lord put him to death also.
The law about marrying a widow was to ensure that a childless widow would have a son who would receive her late husband’s inheritance and who would care for her. Because Judah’s son, Tamar’s husband, had no children and no family line through which the inheritance and the blessing of the covenant could continue. God killed Onan because he refused to fulfill his obligation to his brother and to Tamar.