A creature with reach is explicitly able to block creatures with flying. CR 702.17a states that flying can only be blocked by creatures with flying or reach. So reach satisfies that requirement completely.
Trample (CR 702.19) is a combat damage assignment ability that only matters after blockers are declared. It has no effect on whether a creature can or cannot be blocked. A creature with trample can still be blocked normally — trample just means excess damage can be assigned to the defending player if the creature is blocked.
There is no rule interaction between flying and trample, or between reach and trample, that changes any of this. The two keywords are entirely independent of each other when it comes to blocking eligibility.
Example: Your opponent attacks with a 4/4 Dragon that has both flying and trample. You control a 2/4 Spider with reach. You may legally declare the Spider as a blocker. The Dragon's trample means that if you block with the Spider, the Dragon's controller can assign 2 damage to the Spider (lethal) and 2 damage to you — but the block itself is perfectly legal because of reach.
Unofficial fan resource — not affiliated with or endorsed by Wizards of the Coast. Answers are AI-generated estimates grounded in the Comprehensive Rules and are not a substitute for an official judge. Verify anything match-critical.