369년(근초고왕 24)에 고구려 고국원왕이 보기(步騎) 2만을 이끌고 백제를 침략해오자, 근초고왕은 태자로 하여금 이를 막게 하여 반걸양(半乞壤 : 지금의 황해도 배천)에 이르러 싸우려 하였다. 고구려사람 사기(斯紀)는 본시 백제사람이었는데 잘못하여 나라에서 사용하는 말의 발굽을 상하게 하고 벌을 받을까 두려워서 고구려로 도망하였다.
이때 다시 백제로 돌아와 태자에게 이르기를 “고구려군사가 비록 많기는 하나, 모두 숫자만 채운 허수아비입니다. 날쌔고 용감한 자들은 적기(赤旗)뿐이니, 만일 먼저 이를 깨뜨리면 나머지는 치지 않더라도 저절로 무너질 것입니다.”라고 하였다. 백제태자는 이 말을 좇아 진격해서 크게 적군을 깨뜨리고, 도망치는 것을 뒤따라 북으로 수곡성(水谷城 : 지금의 황해도 신계) 서북에까지 이르렀다.
이때 장군 막고해가 간하기를 “일찍이 도가(道家)의 말을 들으니 ‘만족할 줄 알면 욕되지 않고, 그칠 줄 알면 위태롭지 않다.’고 하였습니다. 지금 얻은 바가 많으니 어찌 더 구할 것이 있겠습니까.”라고 권하였던 바 태자가 이를 옳다고 여겨 추격하기를 중지하고 돌을 쌓아 표지를 삼았다. 이로 미루어보아 그는 용감한 장군이었을 뿐만 아니라 도학에도 통달하였던 장수로 판단된다.