"It is impossible to win the conflict just by military means," he said on a visit to the Ukrainian port city of Mariupol, where sporadic fighting has flared between government forces and pro-Russian rebels despite a ceasefire.
"The more we increase the pressure, the more Russian troops are on our territory," said the president.
Poroshenko told reporters that the quickest way to achieve "stability and peace" in Ukraine was simple.
"Withdraw foreign troops and close the border and within a week we (will) find a compromise... I think the peace initiative is bringing us to this result," he said in English.
He said there had been 10-12 violations of the truce each day but that if the accord was bringing home prisoners of war and saving the lives of civilians and soldiers "this means the ceasefire works".
"I think we win (the war) but... More accurately we win the war.