I saw this problem on reddit today and I think that we cursorily covered this in Tanach class. Who was Cain's wife? In בראשית ד' י"ז it says " וַיֵּדַע קַיִן אֶת-אִשְׁתּוֹ" but it never says who she is. Some of the answers I've seen are that she must be his sister, however it does not mention any other children before this. Furthermore, I don't the "Torah doesn't happen chronologically" card can be pulled here because later, in פסוק כ"ה it says "וַיֵּדַע אָדָם עוֹד, אֶת-אִשְׁתּוֹ". The "עוֹד" means that this must have happened after the birth of קין. The explanation I think was given in class was that his wife was חוה. Is this the case?
The Gemara in Sanhedrin 38b says that Kayin married his twin sister.
The Medrash HaGadol says her name was
(Source: Tamma DeKra from Rav Chaim Kanievski.)
The Ibn Ezra (5:29) writes:
והשואלים מי היתה אשת קין ושת, מה טעם לשאלה הזאת, כי כתוב באדם ויולד בנים ובנות, וכן כולם`
Those who ask who was the wife of Kain and Sheis, what is the cause for such a question - it is written by Adam that he had sons and daughters, and so too all of them.
According to the footnotes* on the Ibn Ezra brought in the sefer מחוקקי יהודה here he means that all the early generations had both sons and daughters, and that a person would marry his twin sister or sister.
*From the footnotes:
ר"מ חפץ and after him ר. נפתלי הירץ וייזל and הכתב והקבלה explain that in the early generations each one was born with a twin sister or sister, and she became his wife. And in this way they were protected from adultery because no one would think about sleeping with a woman whom he did not know. And this practice continued until the days of Lemech who was the first to take two wives who were not his sisters, and from that time on they descended from their lofty spiritual status, and became like it is now, that sometimes a woman only had a son or only a daughter.
This is what the posuk in Bereishis 6:1 “And it was, when men began to multiply on the face of the earth, and daughters were born to them” means, that the way of the world changed from what it was previously when they did not only have daughters, because now they sometimes had only daughters without any sons, as it is until today.
Elsewhere, Rabbi Kanievsky offers another name for Cain's wife, הויה in addition to קנונתו as mentioned above. See http://hebrewbooks.org/pdfpager.aspx?req=49913&st=&pgnum=4
Also, in the book of Jubilees Ch. 4 her name is given as Awan.
According to R' Yitzchok ben Yehuda Abarbanel on his commentary to Bereishis 4:1, Kayin and Hevel were each born with a twin sister who they married. Kayin's wife is named as Kalmono and Hevel's wife is named as Balbiro. See this link the very first line of the commentary.