He said, however, that he had no option but to negotiate with Mr. Putin.
Russia denies Western accusations that it has sent regular troops and armor to help the rebels in eastern Ukraine.
The United Nations says at least 6,000 people have been killed since fighting started in eastern Ukraine in April 2014.
Pro-Russian rebels made significant gains in the region, including, most recently, the rail hub of Debaltseve. They, and Russia, have denied they are receiving Moscow's support.
But Russia's role has again come into question, after the capture on Saturday of two men Ukraine said were elite Russian soldiers working in eastern Ukraine.
Poroshenko said: "Can I be absolutely clear with you this is not a fight with Russian-backed separatists, this is a real war with Russia.
"The fact that we captured ... Russian regular special forces soldiers [is] strong evidence of that."
When asked whether he feared a summer offensive by Russia, Poroshenko said: "I fear anything. I believe they are preparing an offensive and I think we should be ready and I think that we do not give them any tiny chance for provocation. That will totally be their responsibility."
Poroshenko added that, despite not trusting Mr Putin, he had no option but to have faith in diplomacy.
He said he feared parts of eastern Ukraine could not be taken away from rebels by military means alone - meaning diplomacy was the only answer.
On Tuesday, NATO's Secretary General Jens Stoltenberg called for an end to snap exercises by Russia close to the Ukrainian border, and demanded Russia be "more transparent when it comes to their military activities".
A cease-fire agreement was signed in Minsk in February, but heavy fighting has continued since then. Last week, Mr Poroshenko said at least 83 Ukrainian servicemen had been killed since the ceasefire came into effect.
Elsewhere in Ukraine, at least four Ukrainian soldiers were killed in the eastern Luhansk region on Tuesday. The region's governor said the men were attacked by separatist rebels near the village of Katerynivka.