When a creature is declared as an attacker and then blocked, combat damage is not dealt immediately — it is dealt during the Combat Damage Step, which comes after the Declare Blockers Step. If a player sacrifices the attacking (or blocking) creature in response to being blocked, the creature leaves the battlefield before combat damage is ever assigned or dealt.
According to CR 510.1, creatures assign combat damage during the Combat Damage Step. A creature must be on the battlefield at that point to assign and deal damage (CR 509.1 covers the Declare Blockers Step as a separate earlier step). Once the creature is sacrificed, it is no longer a game object on the battlefield and therefore cannot deal damage.
Importantly, the blocked status of the attacking creature does not change just because the blocker or attacker leaves the battlefield. If the attacker is sacrificed, it simply ceases to exist and deals no damage. If the blocker is sacrificed, the attacker remains blocked (CR 509.1h) but the gone blocker deals no damage either.
Example: Your 3/3 attacks and your opponent blocks with their 2/2. In response, you sacrifice your 3/3 to an Altar. When the Combat Damage Step arrives, your 3/3 is gone — it deals no damage to the blocking 2/2 or to your opponent, and the 2/2 survives unscathed.
So the key rule is timing: sacrificing a creature before the Combat Damage Step (CR 510) removes it from the game before damage assignment ever occurs, meaning it deals zero combat damage regardless of whether it was blocked.
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.