chinese food/chinese take out/dinner/meat/restaurant recipes

Copycat Panda Express Orange Chicken Recipe

Posted May 15, 2019 by Stephanie

I LOVE orange chicken. I know that people don’t think it’s real Chinese food, but it’s actually based on a real Chinese dish, just with a few tweaks: more sugar and orange juice instead of vinegar or lemon. At its core, it’s a crunchy deep fried nugget of meat coated in a sweet and tangy (sour) sauce. It hits all the right flavor notes and is a mix of textures too and it’s my absolute favorite.

I mean, I get absurdly excited when they put out a new batch at Panda Express. And I sometimes buy that bag of frozen orange chicken from Trader Joe’s. Heck, it’s so good that we even make orange chicken at home, from scratch because when you love something, you want to do right by it.

Anyway, I whipped up a batch the other day so that Mike and I could compare deep-fried to oven baked and the truth is…we thought both were excellent! So, it’s a question of how much commitment you want to put into it. The thing about orange chicken is that it gets coated in sauce so you loose a touch of that crispness, so if you want to go the hands off oven baked route, that works too.

Truth is, it doesn’t matter how it’s made or where it comes from, I just love orange chicken. Cue that old school Backstreet Boys song…I don’t care who you are, where you’re from, what you did, as long as you’re orange chicken.

Copycat Panda Express Orange Chicken Recipe |

Copycat Panda Express Orange Chicken Recipe
serves 1


  • 1 lb boneless skinless chicken thighs, cut into bite sized pieces
  • 1 egg white
  • 1 tablespoon light soy sauce
  • 1 tablespoon shaoxing wine
  • 1/2 cup cornstarch
  • neutral high heat oil to deep fry

Orange Sauce

  • 1/2 cup orange juice
  • 1/4 cup sugar
  • 2 tablespoons light soy sauce
  • 2 tablespoons rice vinegar
  • 1 tablespoon cornstarch
  • 2 cloves garlic, minced
  • 1 teaspoon freshly grated ginger
  • orange zest, to finish

Marinate the chicken with the egg white, soy sauce, and shaoxing wine for 15 minutes. When done, mix in the cornstarch so that everything forms a loose batter.

Place a rack over a rimmed baking sheet lined with paper towels. Heat 2 inches of oil in a high-sided, heavy bottomed pot over medium high heat until oil reaches 350°F.

Use a pair of tongs to gently add the chicken to the hot oil in batches, being careful not to crowd the pan. Cook until golden brown and crispy, about 5-6 minutes, flipping as needed. Drain the chicken on your prepared rack and keep warm in the oven.

When all the chicken is cooked and keeping warm in the oven, make the sauce.

Add all of the ingredients to a skillet and whisk to combine over medium heat, until the sauce starts to bubble, thicken and turn glossy.

Remove the chicken from the oven and add to the sauce. Toss throughly to coat and enjoy immediately.

Notes: You can definitely use already squeezed orange juice, just adjust the sugar to taste – it may need to be more or less sweet depending on the juice.


  1. Wendell says:

    To intensify flavor, add 1/8 tsp food grade orange oil to the sauce & a little crushed red pepper flakes if you like a little heat.

  2. Stephen says:

    Fantastic. I doubled: used chicken breasts, 3 naval oranges for juice and zest, and gin for the wine. All I can say is fabulous!!!!!! The orange came through quite strong with plenty of tangy take-out flavors. I’m already thinking about who I can share recipe with.

    1. Stephanie says:

      hi stephen!
      yay for orange chicken! :D

Leave a Reply

Your email address will not be published. Required fields are marked *

$(function(){ var trigger = $('.hamburger'), overlay = $('.overlay'), isClosed = false; () { hamburger_cross(); }); function hamburger_cross() { if (isClosed == true) { overlay.hide(); trigger.removeClass('is-open'); trigger.addClass('is-closed'); isClosed = false; } else {; trigger.removeClass('is-closed'); trigger.addClass('is-open'); isClosed = true; } } $('[data-toggle="offcanvas"]').click(function () { $('#wrapper').toggleClass('toggled'); }); bindBehavior.subscribe(); });