唐高宗仪凤年间(676-679),狄仁杰出任大理寺(最高法院)官员。据说一年内裁断羁押案件无数,涉及1.7万人,没有喊冤的。他甚至敢跟皇帝据理力争。当时大将军权善才和中郎将范怀义误砍了唐太宗陵的柏树,高宗怒道,“这是让我当了不孝子,必须杀!”但最后被狄仁杰说服,免了他们死罪。
之后,在豫州刺史任上,狄仁杰恰逢越王李贞起事兵败,受牵连者有数千人。他向唐高宗上密奏,为他们求情说,多数人是被胁迫的,罪不至死。高宗于是下诏将他们悉数流放边疆。平定李贞之乱的,是宰相张光辅。他手下的将士恃功自傲,索取财务,狄仁杰不答应,并批评张。张光辅回朝后告了狄仁杰一状,令他贬为复州刺史、洛州司马。
武则天天授二年(691),狄仁杰转任地官侍郎、判尚书、同凤阁鸾台平章事,当上了宰相(其时宰相为多人)。武则天告诉他说,“你在汝南政务做得好,不过也有说你坏话的,你想知道是哪些人吗?”狄仁杰说,“陛下认为我做错了,我可以改;陛下认为我没做错,那是我的幸运。我不想知道是谁说了坏话。”武则天赞叹不已。之后,狄仁杰被酷吏来俊臣诬陷而入狱。当时的惯例是如果一审问就认罪,大多便能免死。来俊臣说他谋反,他回答说:大周革命,什么都想换新的,我是唐朝旧臣,心甘情愿被杀戮,说我谋反没错。”
但狄仁杰并未坐以待毙。他向看守讨得了笔砚,偷偷写了密信藏在棉衣里,跟来俊臣下属说,“现在天气热了,请交给我家人抽出衣服中的棉絮。”他儿子收到衣服,取得密信,向武则天鸣冤。来俊臣慌忙伪造狄仁杰的认罪书。武则天召见了狄仁杰,问他:“为何承认谋反?”狄仁杰说,“要是不承认,这时已经被打死了。”武则天问,“那为何写认罪书?”狄仁杰说,“我没写过。”武则天知道认罪书不是他所写,免了死罪,只将他贬为彭泽县令。
万岁通天年间(696-697),契丹攻陷冀州,河北震动,狄仁杰被征为魏州刺史,契丹人没有再来侵犯。不久改任幽州都督。神功元年(697),拜鸾台(门下省)侍郎、同凤阁鸾台平章事、加银卿光禄大夫,兼纳言,再任宰相。
此时武则天发兵戍守新疆疏勒等四镇,百姓怨苦不迭。狄仁杰建议说,唐朝疆域已经超过前朝,为争夺不毛之地,导致国库空虚,甚至可能引发内乱,而所获得的人口不能增加赋税,所获得的土地也不能用于耕织,很不值得。可以采取以夷制夷之策,退出四镇、安东,封赐边疆少数民族领袖,使其统治各番,抵御寇乱。唐朝军队可以集中在一些要塞,以逸待劳。
他这些建议未获武则天采纳。
狄仁杰每每劝武则天召回流放的儿子李显,立为太子。当时她的侄儿武承嗣、武三思也在谋求被立为太子,武则天犹豫不绝。狄仁杰劝她,母子之情本来就比姑侄之情更为亲密,何况李唐仍是人心之所向,立李氏子孙,日后可以配享宗庙;立武家亲族,李家的宗庙就不会有你的位置。圣历初年(698),武则天召回了李显。
也是在这年,突厥侵略河北,武则天命狄仁杰为河北道行军元帅。突厥杀死所掠男女万余人退去。狄仁杰又任河北安抚大使。当时很多民众曾被突厥人胁迫反抗唐朝,他上书说,负罪者在山泽中潜伏,宽恕他们就会出来,追究他们就会落草为寇。边境一时的战事不必深忧,而内陆不安宁就很麻烦了。不如赦免河北诸州百姓,不再追究。武则天采纳了。而后狄仁杰举荐的李固楷、骆务整打赢了契丹,武则天夸赞狄仁杰善于知人。
当时,武则天想花费数百万钱建大佛。资金不足,她就下诏全国僧尼每人每天捐一钱。狄仁杰劝她说,工程不是役使鬼来完成的,只能役使人;财物不可能从天而降,最终是由土地生产。不损害百姓哪来的钱?即便收敛僧尼的钱,对建大佛这样的工程也是杯水车薪。而现在边境尚未安定,应该减免不必要的开支。于是武则天终止了这项大工程。
圣历三年(700),狄仁杰以71岁之龄去世。他向武则天举荐的人才,像张柬之、桓彦范、敬晖、姚崇等都是后来唐玄宗中兴唐朝的名臣。其中,张柬之更是密谋政变逼迫武则天退位、复辟唐朝的一位重要人物。
唐中宗即位后追赠狄仁杰为司空,之后唐睿宗又封他为梁国公,所以狄仁杰又被后人尊为狄梁公。