The Bible does not say specifically who Cain’s wife was. The only plausible answer is that she was his sister or perhaps a niece. We presume this because we do not know how old Cain was when he killed Abel. Since they were both farmers, they were most likely full-grown adults. Adam and Eve surely had more children than just Cain and Abel at the time Abel was killed since God had commanded them to “be fruitful and increase in number” (Genesis 1:28).
These other children would have settled in various parts of that region. As there was no one else for them to marry, they had to marry each other in order to propagate the race. Furthermore, Adam and Eve had very few genetic defects, and that enabled them and the first few generations of their descendants to have a far greater quality of life than we do now. God did not forbid inter-family marriage until much later when there were enough people on the earth to make intermarriage unnecessary (Leviticus 18:6-18).
Some have suggested there could have been other humans not begotten from Adam and Eve’s union around at this time, but this simply cannot be true because Genesis 3:20 states Eve was the “mother of all living.”
According to the biblical record, we also know that Adam and Eve were the only created human beings (Genesis 2:7,22). Therefore, any humans that existed at that time had to have been born from their union. Even though the Bible does not mention Adam and Eve having daughters until Genesis 5:4, obviously Eve was bearing them at or near the same time as Cain and Abel because we note in Genesis 4:14, after Cain murders Abel, he says to God “whosoever finds me will kill me.” It is apparent that by that time there were already many people living on the earth.
After he murdered Abel, Cain left and went to live in the land of Nod, east of Eden (Genesis 4:16). It was there that he married a wife—who may have been either a sister or a niece.