I remember when I first came across this word, I thought it was pronounced /'sɜr-dʒint/ (SER-jeent). Now I am curious as to why the first syllable is pronounced /sar/ rather than /sɜr/. I looked at the etymology, and found that the word has always had either sir or ser at the beginning, never sar. To top that off, sergeant comes from the Old French sergent, from Latin servientem meaning serving, the same root word that we get the word servant from. To my knowledge, servant has never been pronounced /'sar-vənt/. Why and since when has sergeant been pronounced sargent?
Per the Naval Historical Center:
The English borrowed the word "sergeant" from the French in about the Thirteenth Century. They spelled it several different ways and pronounced it both as SARgent and SERgeant. The latter was closer to the French pronunciation. The SARgeant pronunciation became the most popular, however, so that when the Nineteenth Century dictionary writers agreed that the word should be spelled "sergeant" they could not change the popular pronunciation. Thus, we say SARgeant while the French and others say SERgeant.
The digraph <er> represented /ɜːr/, which became opener /ɑː(r)/. As the sound shifted, so the spelling shifted to <ar> in many words. Folks have kept the old spelling especially in the case of their names and place names, so we have a mismatch between the spelling and the expected sound. In other cases, we have two spelling versions: derby vs darby, clerk vs clarke, Hervey vs Harvey, merchant vs marchant, farmer vs fermor; etc. Most of this is from Jack Windsor Lewis's Derby and Similar Words. This mismatch (sergeant vs sar-) is not unique to sergeant. You can find more examples in that post from JWL. Check his Grapho-Phonemic mis-cordinations.