徐有功,是国子博士徐义远的孙子。他以明经科中举,调任蒲州司法参军,袭受封爵为东莞男。他为政宽厚仁慈,吏人都感受到他的恩德,便互相约定:“如犯了徐司法杖刑的,大家都要斥责惩罚这种人。”由此,人争着为他效命。他任司法参军,从开始到结尾,没有杀一人。载初元年(690),连任司刑丞。当时,酷吏周兴、来俊臣、丘神责力、王弘义等陷害无辜,很多人受到了极刑。公卿也因此震惊恐惧,没有谁敢讲真话。徐有功却能一人坚持公平宽恕的原则,凡是奉诏被抓到大理寺审讯的,徐有功都秉公决断而去掉不实的罪名,前前后后,挽救了数百家人的性命。他经常在殿上论奏案件的是非曲直,武则天厉色责问他,左右的臣子无不胆颤心惊,惟独徐有功神态自然,争论得更加带劲。不久,他调任秋官员外郎,又转调郎中。
不久,凤阁侍郎任知古、冬官尚书裴行本等七人,被酷吏构罪陷害,按罪名当处死刑。武则天对公卿说“:古人以杀止杀,我今以恩止杀,各位公卿为知古等求情,我赐他们第二次生命,各自都授予官职,等他们明白而为朝廷效力。”来俊臣、张知默等又不听从,请求以大法加罪,武则天不同意,来俊臣就单对裴行本,复查他以前的罪证,上奏道:“行本私下干着叛逆勾当,告张知謇与庐陵王谋反一事不实,罪当处斩。”徐有功反驳来俊臣上奏道“:俊臣违背明主的再生之赐,损害了圣人的恩信之道。作为臣子虽然应当嫉恶,但是事奉君主一定要顺应君主的美好愿望。”行本因徐有功的力辩而免死。
道州刺史李仁褒及他的弟弟李榆次做长沙县令,被唐奉一所构罪诬陷,徐有功又坚持为他争辩,未能起作用,反而被秋官侍郎周兴向武则天参奏“:臣听说两汉的法律,附下瞒上的腰斩,当面骗君的人也斩。《礼》经上明文规定:断章取义破坏歪曲法律的人杀。徐有功故意为反叛者开脱罪名,按罪行徐有功应当不能赦免,请圣上按其罪判刑。”武则天虽然没有同意拘捕问罪,但是终究因此事而免官。过了一段时间,又起用徐有功为左台侍御史,武则天特别褒扬而特殊相待。当时远近之人听到徐有功又授职,皆欣然相贺。
徐有功曾经上疏论冢宰、刑部及朝三司执法官的过失,其大意是:“陛下即位以来,中央地方的官员都已稳定,但天下用人才渐多,而掌握选拔人才的部门取舍不平等,选派任职失次,要求他们公平无私,他们却言行不一,遂使怨声载道,指责盈朝,但他们习以为常,一点畏惧惭愧的感觉都没有,又加之前朝经常不按法行事,审讯定案,刑狱至严,陛下革新旧制以来,积年旧习,余风未绝,用法还是过于严酷失当。现在审讯官员行酷法,妄加断案,臣去检查,按罪而论,发现有的是冤案,请依法处理,夺禄贬官,来使其有愧于自己的德行。但三司受理,不迅速定夺,致使案件拥塞,有理不能申诉的人,也盼望速裁决,进行处理。臣过去在法司任职,蒙圣上提拔任用,臣无以报答圣上,只愿以公正执法来酬圣上的知遇之恩。决不做放纵不顾是非,妄自随人的人,也决不做回避强暴凌人的人,一定狠狠打击枉法的奸妄之人,这是臣的本分,如蒙陛下准允降旨施行,要不了多久,就可以除残革弊,刑法就可以放着不用,如能这样,天下百姓就太幸福了。”
后,润州刺史窦孝谌妻庞氏被仆奴诬告,说她夜起小解祈福。武则天命令给事中薛季昶审讯,薛罗织罪状,陷庞氏死罪。当时只有徐有功知庞氏无罪,为之申辩。而薛季昶等反陷徐有功为庞同党援救叛逆,并上奏将徐有功法办,法司判决徐当死刑。徐有功正在处理政事,令史流着泪把判决告诉他。徐有功道:“难道我独死,而那些人长不死吗?”乃慢慢地站起来归家。武则天看了处决徐有功的奏章,召徐有功问道:“卿对于断案,重罪轻罚的人为什么多?”徐有功答道:“重罪轻罚是臣下的小过;好生,是圣上的大德。愿陛下弘扬好生的大德,则天下幸甚。”武则天默然,后来庞氏减刑免死,流放到岭表,徐有功除名为庶人。不久,徐有功又被起用为左司郎中,又升迁予刑少卿。徐有功对他的亲友说“:今身为司法之官,人命所悬,一定不能一味顺从,不实事求是,来求得自身的安全。”所以前前后后做狱官,因为谏奏冤枉受刑的事,而三次断死刑,但他执志不渝,酷吏因此势稍衰。当时的人把他比作汉代执法公正的于定国、张释之。有的说:“若狱官都是这样,用不上刑法的日子怎么会远呢?”过了较长一段时间,徐有功调任司仆少卿。长安三年(702)卒,享年六十二岁,赠予刑卿。
唐中宗即位,表彰徐有功执法敬慎,虽死不移,无屈挠之心,有出死之议。赠徐有功大理卿、越州刺史,并派使者前往吊祭,赐物百段授一子官。窦孝谌之子窦希蠨等请求以自身的官爵让给徐有功之子徐忄仑,来报旧恩。