A tentative truce faltered when Israel vowed to retaliate after saying Iran launched missiles into its airspace more than two hours after a ceasefire was supposed to take effect.