Vua Thiệu Trị quyết định cho quân tấn công sang Cao Miên, tiến đánh Xiêm La. Quân Đại Nam chia 3 đường tiến sang Cao Miên như sau:
Đạo quân thứ nhất từ đồn Tân Châu (An Giang) do Đề đốc An Giang là Nguyễn Văn Hoàng chỉ huy theo đường thủy trên sông Tiền Giang đánh đồn trọng yếu trên sông Mê Kông là Ba Nam (nay là Phumi Ba Nam thuộc thị trấn Neak Loeang huyện Peam Ro tỉnh Prey Veng). Đạo quân thứ hai từ đồn Thông Bình (thuộc Định Tường tức Đồng Tháp ngày nay) do Tuần phủ An Giang là Doãn Uẩn chỉ huy đến sông Tam Ly (Prek Trabeak) rồi cùng đạo quân thứ nhất đánh đồn Ba Nam trước khi vào chiếm toàn bộ phủ Ba Nam (sau này đổi tên thành phủ Nam Ninh). Đạo quân thứ ba từ phủ Tây Ninh thuộc tỉnh Gia Định do Nguyễn Công Nhàn và Cao Hữu Dực chỉ huy. Đạo quân này chờ cho hai đạo quân trên chiếm được phủ Ba Nam rồi thì mới tiến sang nhằm hợp quân cùng tiến đánh đồn Thiết Thằng.
Tháng 6 âm lịch năm 1845, Đại Nam tiến quân, đạo quân thứ nhất do Nguyễn Văn Hoàng chỉ huy từ đồn Tân Châu tiến đánh Tầm Bôn thuộc phủ Ba Nam của Cao Miên (xã Preaek Sambuor thuộc huyện Peam Chor tỉnh Prey Veng). Dù quân Xiêm xuôi theo dòng sông Tiền bắn vào quân Việt, nhưng quân Việt vẫn tiến đánh và hạ được Tầm Bôn, rồi ngược sông Tiền đánh đồn Ba Nam như kế hoạch.
Quân Đại Nam chiếm được Ba Nam và vỗ yên dân chúng. Tại đây, quân Đại Nam được dân chúng cho biết quân Xiêm đã xây dựng được ở thượng lưu sông tiền một hệ thống quanh đồn Thiết Thằng, án ngữ trên sông Tiền, chặn ngang con đường đến kinh đô Nam Vang. Quân Đại Nam liền tiến đánh trước các đồn ở hạ lưu.
Cùng xuất phát với đạo quân thứ nhất, đạo quân thứ hai do Doãn Uẩn cùng Lãnh binh Định Tường là Nguyễn Sáng đem quân từ đồn Thông Bình tiến sang Cao Miên theo ngả đường qua phủ Ba Nam, liên tục hạ 2 đồn là Thị Đam (xã Cheang Daekhuyện Kampong Trabaek) và Vịnh Bích (thị trấn Kampong Trabaek huyện Kampong Trabaek tỉnh Prey Veng).
Quân Xiêm ở đồn Kha Đốc từ thượng nguồn con sông xuôi theo dòng tấn công quân Việt. Doãn Uẩn đốc quân cầm cự rồi phản công đến tận đồn Kha Đốc. Quân Xiêm phải bỏ luôn cả đồn này tháo chạy.
Ngày 14/6 âm lịch năm 1845, Doãn Uẩn tiến đánh đồn Sách Sô (nay là Phumi Khsach Sa thuộc các xã Roung Damrei, Reaks Chey huyện Ba Phnum). Quân Xiêm ở sông Sách Sô kết bè mảng trên sông, đào cả hầm hố hai lớp trong ngoài dài hơn ngàn trượng để chặn quân Đại Nam.
Về trận Sách Sô, Doãn Uẩn mô tả trong “Ngoại lãng tướng công niên biểu” như sau:
Ta chia binh làm hai đạo: lãnh binh Hồ Đức Tú và phó lãnh binh Lê Đình Lý cầm một ngàn binh từ phủ Tẩu Đà tiến vào, ta cùng lãnh binh Nguyễn Sáng dẫn hơn ngàn quân từ Ích Đà tiến vào. Bọn giặc dựa vào lũy đông như kiến, bắn ra. Ta thân đốc hai đạo quan binh oanh kích bằng pháo lớn. Ai nấy dũng cảm hăng hái, lên trước bạt lũy, đâm chết nhiều tên. Đảng giặc tan vỡ, vào rừng chống giữ. Quan binh liền đóng đồn trấn giữ ở Sách Sô.
Đúng lúc đó ở Nam Kỳ, Võ Văn Giải (Hậu quân Đô thống) và Tôn Thất Bạch (Thượng thư bộ Binh) đến An Giang, giao cho Nguyễn Tri Phương, Tôn Thất Nghị đưa thêm quân đến Cao Miên, quân Đại Nam dùng thuyền đến Ba Nam.
Khi quân của Nguyễn Tri Phương chưa tới, ngày 26/6 âm lịch, 5.000 quân Xiêm đến vây đạo quân Doãn Uẩn ở Sách Sô. Quân Đại Nam cố thủ bắn hạ được tướng chỉ huy khiến quân Xiêm tan vỡ.
Tin thắng trận truyền về Huế, vua Thiệu Trị khen hai cánh quân của Doãn Uẩn và Nguyễn Văn Hoàng, ra chỉ dụ hai đạo quân này cần tiến nhanh hơn nữa để đến được Nam Vang, và yêu cầu đạo quân thứ ba tiến sang Cao Miên như kế hoạch. Nguyễn Công Nhàn liền chỉ huy đạo quân thứ ba tiến sang Cao Miên.
Tháng 7 âm lịch, Nguyễn Tri Phương đưa thêm viện quân đến Ba Nam. Lúc này quân Xiêm phòng thủ Thiết Thằng rất chặt chẽ, lập nhiều đồn lũy, cùng xích sắt chắn ngang sông, lập phòng tuyến vững chắc ở Thiết Thằng ngăn quân Việt đến kinh đô Nam Vang.
Lúc này sĩ khí quân Việt đang rất hăng, Doãn Uẩn cùng Nguyễn Tri Phương quyết định đưa quân tiến đánh Thiết Thằng. Quân Việt có 5.000 quân chia làm 2 cánh, một cánh do Nguyễn Tri Phương và Tôn Thất Nghị chỉ huy 3.000 quân, một cánh do Doãn Uẩn và Nguyễn Văn Hoàng chỉ huy 2.000 quân theo sông Tiền Giang tiến lên.
Quân Xiêm trên sông và các đồn lũy hai bên bờ quyết liệt đánh chặn, hỏa lực dồn vào quân Việt mà bắn. Quân Đại Nam tiến được đến đồn Thiết Thằng, hai cánh quân hợp lại giáp kích. Thế nhưng Thiết Thằng là vị trí quan trọng, quân Xiêm dựa vào đồn lũy được chuẩn bị kiên cố liều chết chống giữ, khiến quân Việt đánh mãi vẫn không sao hạ được.
Lúc này đạo quân thứ ba của Nguyễn Công Nhàn xuất kích đến nơi, các đạo quân cùng hợp sức tiến đánh khiến quân Xiêm không giữ được. Quân Đại Nam chiếm được Thiết Thằng, quân Xiêm thua trận mất một đại tướng cùng nhiều quân sĩ và súng ống, phải bỏ chạy về Nam Vang.
Đến lúc này con đường tiến đến kinh thành Nam Vang đã thông suốt không còn trở ngại
Thừa thắng quân Đại Nam gióng trống tiến thẳng đến Nam Vang, quân Xiêm bỏ thành mà chạy. Đại Nam lấy lại được Trấn Tây Thành.
Nhận được tin thắng trận, vua Thiệu Trị khen thưởng lớn cho các tướng có công, Nguyễn Tri Phương được thăng hiệp biện đại học sĩ, Doãn Uẩn được thăng quyền thượng thư bộ Binh, các tướng khác cũng được thưởng và thăng cấp.
Vua cũng ra chỉ dụ truy đuổi tàn quân Xiêm La và Chân lạp, đồng thời vỗ yên dân chúng. Một số binh tướng của triều đình Cao Miên quy hàng.
Đến tháng 9/1845, quân Việt truy đổi theo quân Xiêm và phát hiện tướng chỉ huy Phi Nhã Chất Tri cùng Hoàng thân là Ông Giun (Ang Duong) đóng quân ở thành Oudong và vùng Vĩnh Long (Kampong Luong). Quân Đại Nam do Nguyễn Tri Phương, Doãn Uẩn, Tôn Thất Nghị ngược dòng sông Tonlé Sap tiến đến Vĩnh Long (Kampong Luong).
Quân Xiêm ở hai bên bờ chặn đánh rất quyết liệt khiến quân Đại Nam không sao lên bờ được. Võ Văn Giải mang thêm quân từ Nam Vang đến.
Thế nhưng quân từ Nam Vang chưa đến, quân Đại Nam đã quyết định để Doãn Uẩn giữ thủy quân, còn Nguyễn Tri Phương và Nguyễn Công Nhàn bỏ thuyền mà lên bờ theo đường bộ tiến đánh.
Doãn Uẩn cho chiến thuyền tấn công thu hút quân Xiêm, trong khi đó Nguyễn Tri Phương và Nguyễn Công Nhàn cho quân theo đường bộ tấn công, quân Xiêm cho voi chiến ra cầm cự ác liệt. Cuối cùng quân Xiêm không chống đỡ nổi phải rút vào thành Oudong cố thủ.
Bị vây chặt trong thàng, cuối tháng 9, tướng chỉ huy là Phi Nhã Chất Tri nhiều lần gửi thư cho quân Đại Nam xin cầu hòa. Doãn Uẩn cho quân tạm ngừng chiến nhưng vẫn giữ chặt vòng vây, hai bên hẹn đến tháng 10 âm lịch sẽ có hòa đàm.
Thế nhưng đến hẹn quân Xiêm vẫn không đến hòa đàm. Quân Đại Nam liền tấn công đánh thành, Nguyễn Tri Phương từ mặt sông Tầm Nạp (nay khoảng bờ sông xã Samraong huyện Ponhea Leu, phía hạ lưu sông Tonlé Sap, tức phía Đông Nam Oudong) tiến vào, Doãn Uẩn từ mặt sông Vĩnh Long (Kampong Luong, phía thượng lưu sông Tonlé Sáp, tức mặt Đông Bắc Oudong) tiến đánh Oudong.
Sau này Doãn Uẩn viết trong “Ngoại lãng tướng công niên biểu” như sau:
Chất Tri và Sá Ông Đôn (Ang Duong) trì hồi quá hạn. Ngày 28 tháng 9, lại chia binh tiến công ở Vĩnh Long. Binh đạo Khâm sai (tức Nguyên Tri Phương) đánh đường hữu lộ của chúng. Binh đạo Tham tán (tức Doãn Uẩn) đánh đường tả lộ của chúng.
Địa thế thành Oudong rất hiểm trở, quân Xiêm lợi dụng địa hình lập nhiều chiến lũy quanh thành. Quân Đại Nam vừa tiến vừa cho chặt cây vượt qua những nơi xung yếu. Hai bên giao tranh ác liệt, quân số hai bên đều bị thiệt hại lớn. Phi Nhã Chất Tri lại cho người đến xin cầu hòa.
Sự việc này được Doãn Uẩn mô tả trong “ngoại lãng tướng công niên biểu” như sau:
Hơn hai tuần (thời xưa một tuần là 10 ngày), quân ta tiến đánh lũy giặc, chỉ hơn 20 trận. Ngày 20 tháng mười, đảng giặc ở trên lũy xin quan quân ngừng đánh đồn phóng pháo, để Chất Tri phái người đến quân thứ xin hòa. Vài ngày sau đó, mới tiếp tục phát gửi tờ tâu đệ tiền kỳ. Trong bản tâu có châu phê (lời vua): Giặc Xiêm thế cùng lực kiệt, vẫy đuôi xin tha, khẩu thỉnh cầu hòa, chẳng phải là không có kế hoãn binh. Mà xem thế chúng, ta đánh thì tất thắng, giữ thì khó, nên sắp xếp thế nào để được thể? Nội trị được vĩnh ninh, biên cương ngoại yên, nhiếp phục được ngoại di. Giao cho các đại thần mau chóng bàn bạc tâu lên. Khâm thử!
Các đại thần văn võ họp bàn, thấy rằng đương lúc này binh uy vang động. Ta đã chiếm thế thượng phong. Hãy tạm hòa với chúng. Cho quân dân được tạm nghỉ sức, thì cũng chẳng đến nỗi không là thượng sách.
Tháng 11/1845, Nguyễn Tri Phương, Doãn Uẩn cùng Phi Nhã Chất Tri và Ang Duong cùng ký hòa ước, theo đó Xiêm La và Đại Nam cùng giải binh.
Nguyễn Tri Phương rút quân về Nam Vang, theo dõi Xiêm La thực hiện hòa ước. Doãn Uẩn viết trong “Ngoại Lãng tướng công niên biểu” như sau:
Ngày mồng 3 tháng mười một, Chất tri dẫn bộ lạc đến quân thứ và dẫn Man tù Sá Ông Đon đến quân thứ thú tội. Sá Ông Đôn tiếp đó lại có thư thỉnh tội, xin giúp đề đạt.
Ta cùng Khâm sai (tức Nguyễn Tri Phương) bàn nhau: Binh pháp nói rằng “bách chiến bách thắng, phi thiện chi thiện; bất chiến nhi khuất nhân binh, viễn vi thiện chi thiện” (trăm đánh trăm thắng không phải là hay nhất trong mọi cái hay; không đánh mà khuất phục được quân của người, mới là hay nhất trong mọi cái hay). Nay dẫu có thể đuổi dài lên bắc, chúng tất thua, nhưng mai kia vị tất chúng chẳng có mưu đồ rửa nhục, chi bằng hẵng cho chúng hòa, để được yên việc, bèn sức cho làm một sớ hội xá, hai bên gặp nhau.
Tháng chạp năm 1846, Ang Duong dâng biểu tạ tội và sai sứ đem đồ phẩm vật sang triều cống, nhìn nhận sự bảo hộ song phương của Xiêm La và Đại Nam.
Tháng 2 âm lịch năm 1847, vua Thiệu Trị phong cho Ang Duong làm Cao Miên quốc vương, phong cho Ngọc Vân làm Cao Miên quận chúa (làm chủ Nam Vang do Đại Nam kiểm soát). Quân Đại Nam và Xiêm La cùng rút hết khỏi Cao Miên.
Cuộc chiến ba lần với Xiêm La ngày nay rất ít được nhắc đến, học sinh cũng không được học trong sách giáo khoa, dù cuộc chiến này giúp Đại Nam giữ quyền bảo hộ Cao Miên, khiến Xiêm La không còn dám quấy nhiễu, các nước lân bang trong khu vực đều xem Đại Nam là cường quốc. Đây là trang sử hào hùng của dân tộc.