甲骨文最早出土于何时,尚无定论。河南安阳殷墟一带,自北宋以来就不断发现商代铜器,当地在千百年前即有甲骨出土是完全有可能的。但直到清末,历代学者都没有注意到甲骨文的存在。

在清朝光绪年间,古董商、金石学家王懿荣,是当时最高学府国子监祭酒(相当于校长)。有一次他看见一味中药叫龙骨,看见上面刻着字,就觉得很奇怪,就翻看药渣,没想到上面居然有一种看似文字的图案。于是他把所有的龙骨都买了下来,发现每片龙骨上都有相似的图案。他把这些奇怪的图案画下来,经过长时间的研究他确信这是一种文字,而且比较完善,应该是殷商时期的。后来,人们找到了龙骨出土的地方——河南安阳小屯村,那里又出土了一大批龙骨。因为这些龙骨主要是龟类兽类的甲骨,是以人将它们命名为“甲骨文”,研究它的学科就叫做“甲骨学”。(此种说法如今存疑,详见百度王襄词条。)另当时药店疏"龙骨"有规定,带字的不要,所以王不可能在药中看到。范寿轩先将龙骨卖予王襄,王襄无力全部购买,余下的范带到北京卖与王懿荣。

由于药铺老板拒收上面有刻画痕迹的龙骨,小屯村的农民就用小刀将上面的痕迹刮掉,以6文钱一斤的价格,将挖出的龙骨卖给药铺。于是许许多多的商代史料被磨成粉,当作药吃进肚里,这就是所谓的“人吞商史”。

学术界基本认同清末官员、金石学家王懿荣是甲骨文的最早发现者。而关于具体发现过程则有两说。

第一说源于刘鹗的记载。光绪二十五年(1899年),河南安阳出土龟版之后,被山东潍县古董商人范寿轩、范维卿等人收购,并运至北京售卖。时任国子监祭酒的王懿荣素来喜好收集古物,通晓金石文字,从古董商手中高价收购了这批甲骨。

另一说流传甚广,与中药“龙骨”密不可分。龙骨一般是指远古哺乳动物的骨骼化石,中医认为其可以入药,有治疗咳逆、泻痢、便血的作用。后来,甲骨代替龙骨,用于药用,河南安阳一带有人甚至世代以此为业。在这一过程中,甲骨文资料受到了不可估量的损失。光绪二十五年。王懿荣染疾服药,偶然在中药中的龙骨上发现了古文字。