This pumpkin chili recipe is hearty and cozy: the perfect fall dinner! Pumpkin adds a creamy body this easy dinner idea, and it’s filled with sweet potatoes, beans, and savory spices. This one is a family favorite every fall!
Maybe you already knew this secret, but did you know adding pumpkin puree to chili adds an intensely creamy, flavorful body to this classic dish? We’re not sure how we went so long without with this tip, and we present to you: our favorite pumpkin chili.
It’s hearty and healthy, packed with spices, sweet potato and beans. Load it up with all your favorite chili toppings, and it’s a satisfying fall dinner recipe that’s ideal for weeknights or dinner parties. Everyone in our family raves over this one.
Ingredient notes for pumpkin chili
Adding pumpkin puree to chili is a stroke of genius: it adds a hearty, creamy texture and works in both meaty or vegetarian chili recipes. While this recipe is vegetarian, it’s easy to transform into a meaty chili by adding ground beef. Here are a few ingredient notes:
- Butter or olive oil: Use olive oil for a vegan chili. Butter adds a nice richness.
- Yellow onion, garlic, green pepper, and sweet potato: You can substitute butternut squash for sweet potato, or use any color bell pepper.
- Pumpkin puree: Make sure to avoid pumpkin pie filling, which has extra spices.
- Diced tomatoes and tomato sauce: Using a combination of both chunky and pureed tomatoes is helpful.
- Kidney and pinto beans: You can use any types of beans you like, but these are our favorites.
- Spices: The secret spices are a combination of chili powder, cumin, smoked paprika, garlic powder, onion powder, cinnamon
- Brown sugar, maple syrup or honey: Sweetener is optional, but we like adding a bit of sweetness to balance the acidity of the tomatoes.
Variation: add ground beef (or plant-based)
It’s easy to mix up this pumpkin chili to add ground beef or plant-based crumbles. You’ll need to add just 5 minutes to the cook time. Here’s what to do:
- Use 1 pound ground beef or plant-based meat crumbles. Some popular plant-based brands are Impossible or Beyond, but there are many great options out there.
- After sauteing the vegetables, add the ground beef and sauté until the meat is browned, about 5 to 7 minutes. The proceed with the remainder of the recipe.
Pumpkin chili toppings
A great chili is all about the toppings, in our opinion! Here’s what we’d recommend for this pumpkin chili recipe, and a few more ideas for getting creative:
- Sour cream and shredded cheese: For vegan, omit the cheese and use Cashew Cream or Vegan Queso.
- Green onion or pickled red onion: Making a batch of pickled red onions for chili adds a tangy flavor and pop of color.
- Tortilla chips: We love adding crushed chips to our chili: it adds just the right crunch!
- Cilantro: Cilantro adds a fresh, inviting flavor.
- Hot sauce: Our favorite is a Mexican-style hot sauce like Cholula.
- Pumpkin seeds (pepitas): Crunchy salted pepitas are perfect to fit the pumpkin theme.
Storing leftovers
This pumpkin chili recipe stores well and works great as leftovers! Here are a few notes on how to store leftover chili:
- Refrigerate for up to 3 days. It can become very thick, so you may need to add a splash of water when reheating or broth when reheating.
- Freeze for up to 3 months. This recipe stores well in a freezer-safe container.
A few side dish ideas
To make it into a meal, here are a few tasty sides to serve with chili we’d serve with this pumpkin chili. Let us know if you have other ideas in the comments: we love to hear what you’re making!
- Try our Mexican Cornbread, Homemade Cornbread, or Vegan Cornbread.
- Add a crisp green salad like Mexican Salad, Romaine Salad with Cilantro Lime Dressing, or Kale Caesar Salad.
- Keep with the pumpkin theme with Pumpkin Dip and sliced apples.
Mexican Cornbread
Romaine Lettuce Salad with Green Goddess
Pumpkin Fruit Dip
Easy Vegan Cornbread
Dietary notes
This pumpkin chili is vegetarian and gluten-free. For vegan, use olive oil instead of butter and for the toppings, use Cashew Cream or Vegan Queso. Serve with Vegan Cornbread for a full meal.
Best Pumpkin Chili
Prep Time: 15 minutes
Cook Time: 25 minutes
Total Time: 40 minutes
Yield: 6
Description
This pumpkin chili recipe is hearty and cozy: the perfect fall dinner! Pumpkin adds a creamy body this easy dinner idea, and it’s filled with sweet potatoes, beans, and savory spices. This one is a family favorite every fall!
Ingredients
- 2 tablespoons butter or olive oil*
- 1 small yellow onion, diced
- 2 garlic cloves, minced
- 1 green pepper, small diced
- 1 small sweet potato, small diced
- 15-ounce can pumpkin puree
- 1 28-ounce can diced tomatoes
- 15-ounce can tomato sauce
- 15-ounce can kidney beans, drained and rinsed
- 15-ounce can pinto beans, drained and rinsed
- 1 ½ cups water
- 2 tablespoons chili powder
- 2 teaspoons cumin
- 2 teaspoons smoked paprika
- ½ tablespoon garlic powder
- ½ tablespoon onion powder
- ¼ teaspoon cinnamon
- 1 ½ teaspoons kosher salt
- 1 tablespoon sugar, maple syrup or honey (optional**)
- For serving: shredded cheese, sour cream, green onions, pickled red onion, crushed tortilla chips, etc
Instructions
- In a large pot or Dutch oven, heat the olive oil over medium heat. Add the onion, garlic, green pepper and sweet potato and cook for 6 to 8 minutes until the onion is translucent and the sweet potatoes are almost tender.*
- Add the pumpkin puree, diced tomatoes and their juices, tomato sauce, drained and rinsed beans, water, chili powder, cumin, smoked paprika, garlic powder, onion powder, cinnamon, kosher salt, and sugar.
- Bring to a simmer, then simmer for 15 to 20 minutes until the sweet potato is tender. If the chili seems very thick, add another ¼ cup water (and a bit more if necessary to come to the desired consistency).
- Taste and add a few pinches kosher salt if desired. Serve warm, garnished with your favorite chili toppings.
Notes
*Meat variation: After Step 1, add 1 pound ground beef or plant-based beef crumbles. Saute until the meat is browned, about 5 to 7 minutes. Then proceed to Step 2.
**You can omit this if desired, but the sugar balances the acid of the tomatoes. If you’d like, you can add to taste at the end of simmering.
- Category: Main dish
- Method: Stovetop
- Cuisine: American
- Diet: Vegetarian
(function(){
window.addEventListener( ‘message’, function( event ){
if ( ( ‘ !== event.origin && ‘ !== event.origin ) ||
typeof event.data !== ‘string’ ) {
return;
}
var payload = JSON.parse( event.data );
switch ( payload.event ) {
case ‘setHeight’:
var iframe = document.getElementById( ‘nutrifox-label-‘ + payload.recipeId );
iframe.style.height = payload.height + ‘px’;
break;
}
} );
}());
window.trCommon={“minRating”:6,”ajaxurl”:”https://www.acouplecooks.com/wp-admin/admin-ajax.php”,”ratingNonce”:””,”postId”:136433};
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.smoothScroll = {
init() {
window.addEventListener( ‘click’, e => {
let anchor = e.target;
if ( ! anchor.classList.contains( ‘tasty-recipes-scrollto’ ) ) {
if ( anchor.tagName === ‘A’ ) {
return;
}
anchor = anchor.closest( ‘a’ );
if ( ! anchor || ! anchor.classList.contains( ‘tasty-recipes-scrollto’ ) ) {
return;
}
}
const elementHref = anchor.getAttribute( ‘href’ );
if ( ! elementHref ) {
return;
}
e.preventDefault();
this.goToSelector( elementHref );
});
},
goToSelector( selector ) {
const element = document.querySelector( selector );
if ( ! element ) {
return;
}
element.scrollIntoView( { behavior: ‘smooth’ } );
history.pushState( {}, ”, selector );
}
};
(function( callback ) {
if ( document.readyState !== ‘loading’ ) {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.smoothScroll.init();
});
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.cookMode = {
wakeLockApi: false,
wakeLock: false,
cookModeSelector: ‘.tasty-recipes-cook-mode’,
init() {
if (“wakeLock” in navigator && “request” in navigator.wakeLock) {
this.wakeLockApi = navigator.wakeLock;
}
const cookModes = document.querySelectorAll(this.cookModeSelector);
if (cookModes.length > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector(‘input(type=”checkbox”)’).addEventListener(“change”, event => {
this.checkboxChange(event.target);
}, false);
} else {
cookMode.style.display = “none”;
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = document.querySelectorAll(this.cookModeSelector + ‘ input(type=”checkbox”)’);
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
try {
this.wakeLock = await this.wakeLockApi.request(“screen”);
this.wakeLock.addEventListener(“release”, () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.release();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};
(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
document.addEventListener(“DOMContentLoaded”, callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});
window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.staticTooltip = {
element: null,
tooltipElement: null,
deleting: false,
init( element ) {
if ( this.deleting ) {
return;
}
this.element = element;
this.buildElements();
},
destroy() {
if ( ! this.tooltipElement || this.deleting ) {
return;
}
this.deleting = true;
this.tooltipElement.classList.remove( ‘opened’ );
setTimeout( () => {
this.tooltipElement.remove();
this.deleting = false;
}, 500 );
},
buildElements() {
const tooltipElement = document.createElement( ‘div’ );
tooltipElement.classList.add( ‘tasty-recipes-static-tooltip’);
tooltipElement.setAttribute( ‘id’, ‘tasty-recipes-tooltip’ );
const currentTooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
if ( currentTooltipElement ) {
document.body.replaceChild( tooltipElement, currentTooltipElement );
} else {
document.body.appendChild( tooltipElement );
}
this.tooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
},
show() {
if ( ! this.tooltipElement ) {
return;
}
const tooltipTop = this.element.getBoundingClientRect().top
+ window.scrollY
– 10 // 10px offset.
– this.tooltipElement.getBoundingClientRect().height;
const tooltipLeft = this.element.getBoundingClientRect().left
– ( this.tooltipElement.getBoundingClientRect().width / 2 )
+ ( this.element.getBoundingClientRect().width / 2 ) – 1;
const posLeft = Math.max( 10, tooltipLeft );
this.maybeRemoveTail( posLeft !== tooltipLeft );
this.tooltipElement.setAttribute( ‘style’, ‘top:’ + tooltipTop + ‘px;left:’ + posLeft + ‘px;’ );
this.tooltipElement.classList.add( ‘opened’ );
},
maybeRemoveTail( removeTail ) {
if ( removeTail ) {
this.tooltipElement.classList.add( ‘tr-hide-tail’ );
} else {
this.tooltipElement.classList.remove( ‘tr-hide-tail’ );
}
},
changeMessage( message ) {
if ( ! this.tooltipElement ) {
return;
}
this.tooltipElement.innerHTML = message;
}
};
window.TastyRecipes.ajax = {
sendPostRequest( url, data, success, failure ) {
const xhr = new XMLHttpRequest();
xhr.open( ‘POST’, url, true );
xhr.send( this.preparePostData( data ) );
xhr.onreadystatechange = () => {
if ( 4 !== xhr.readyState ) {
return;
}
if ( xhr.status === 200 ) {
success( JSON.parse( xhr.responseText ) );
return;
}
failure( xhr );
};
xhr.onerror = () => {
failure( xhr );
};
},
preparePostData( data ) {
const formData = new FormData();
for ( const key in data ) {
formData.append( key, data(key) );
}
return formData;
},
};
window.TastyRecipes.ratings = {
defaultRating: 0,
currentRatingPercentage: 100,
savingRating: false,
init( minRating ) {
this.minRating = minRating;
this.formWatchRating();
this.closeTooltipWhenClickOutside();
this.addBodyClassBasedOnSelectedRating();
this.backwardCompFormRatingPosition();
},
formWatchRating() {
const ratings = document.querySelectorAll(‘.tasty-recipes-no-ratings-buttons (data-rating)’);
if ( ratings.length {
event.preventDefault();
this.defaultRating = event.target.closest( ‘.checked’ ).dataset.rating;
this.setCheckedStar( event.target );
this.maybeSendRating( this.defaultRating, event.target );
this.setRatingInForm( this.defaultRating );
} );
}
},
closeTooltipWhenClickOutside() {
window.addEventListener( ‘click’, e => {
// Bailout (don’t remove the tooltip) when the clicked element is a rating star, or it’s the tooltip itself.
if ( e.target.closest( ‘.tasty-recipes-rating’ ) || e.target.classList.contains( ‘tasty-recipes-static-tooltip’ ) ) {
return;
}
window.TastyRecipes.staticTooltip.destroy();
} );
},
setRatingInForm( rating ) {
const ratingInput = document.querySelector( ‘#respond .tasty-recipes-rating(value=”‘ + rating + ‘”)’ );
if ( ! ratingInput ) {
return;
}
ratingInput.click();
},
addBodyClassBasedOnSelectedRating() {
const ratingInputs = document.querySelectorAll( ‘input.tasty-recipes-rating’ );
if ( ! ratingInputs ) {
return;
}
for ( const ratingInput of ratingInputs ) {
ratingInput.addEventListener( ‘click’, currentEvent => {
const selectedRating = currentEvent.target.getAttribute( ‘value’ );
this.handleBodyClassByRating( selectedRating );
this.toggleCommentTextareaRequired( selectedRating );
} );
}
},
handleBodyClassByRating( rating ) {
if ( rating < this.minRating ) {
document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );
return;
}
document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );
},
toggleCommentTextareaRequired( rating ) {
const commentTextarea = document.getElementById( 'comment' );
if ( ! commentTextarea ) {
return;
}
if ( rating {
window.TastyRecipes.staticTooltip.changeMessage( response.data.message );
window.TastyRecipes.staticTooltip.show();
this.updateAverageText( response.data, recipeCardElement );
this.maybeFillCommentForm( response.data );
// Hide the tooltip after 5 seconds.
setTimeout( () => {
this.maybeResetTooltip( recipeCardElement, response.data, rating );
}, 5000 );
},
() => {
this.resetTooltip( recipeCardElement );
}
);
},
updateAverageText( data, recipeCardElement ) {
if ( ! data.average ) {
return;
}
this.setRatingPercent( data );
if ( ! data.count ) {
return;
}
const quickLink = document.querySelector( ‘.tasty-recipes-rating-link’ );
if ( quickLink ) {
this.setTextInContainer( quickLink, data );
this.setPartialStar( quickLink );
}
const cardStars = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
cardStars.dataset.trDefaultRating = data.average;
this.setTextInContainer( recipeCardElement.querySelector( ‘.tasty-recipes-rating’ ), data );
},
setTextInContainer( container, data ) {
if ( ! container ) {
return;
}
if ( data.label ) {
const ratingLabelElement = container.querySelector( ‘.rating-label’ );
if ( ratingLabelElement ) {
ratingLabelElement.innerHTML = data.label;
}
return;
}
const averageElement = container.querySelector( ‘.average’ );
if ( averageElement ) {
averageElement.textContent = data.average;
}
const countElement = container.querySelector( ‘.count’ );
if ( countElement ) {
countElement.textContent = data.count;
}
},
setPartialStar( container ) {
const highestStar = container.querySelector( ‘(data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”)’ );
if ( highestStar ) {
highestStar.dataset.trClip = this.currentRatingPercentage;
}
},
setRatingPercent( data ) {
this.defaultRating = data.average.toFixed( 1 );
const parts = data.average.toFixed( 2 ).toString().split( ‘.’ );
this.currentRatingPercentage = parts(1) ? parts(1) : 100;
if ( this.currentRatingPercentage === ’00’ ) {
this.currentRatingPercentage = 100;
}
},
setCheckedStar( target ) {
const cardRatingContainer = target.closest( ‘.tasty-recipes-ratings-buttons’ );
const selectedRatingElement = cardRatingContainer.querySelector( ‘(data-tr-checked)’ );
if ( selectedRatingElement ) {
delete selectedRatingElement.dataset.trChecked;
}
const thisStar = target.closest( ‘.tasty-recipes-rating’ );
thisStar.dataset.trChecked = 1;
thisStar.querySelector( ‘(data-tr-clip)’ ).dataset.trClip = 100;
},
maybeFillCommentForm( data ) {
if ( ! data.comment || ! data.comment.content ) {
return;
}
const commentForm = document.querySelector( ‘#commentform’ );
if ( ! commentForm ) {
return;
}
const commentBox = commentForm.querySelector( ‘(name=comment)’ );
if ( ! commentBox || commentBox.value ) {
return;
}
// Add comment details for editing.
commentBox.innerHTML = data.comment.content;
if ( data.comment.name ) {
commentForm.querySelector( ‘(name=author)’ ).value = data.comment.name;
commentForm.querySelector( ‘(name=email)’ ).value = data.comment.email;
}
},
maybeResetTooltip( recipeCardElement, data, rating ) {
if ( this.savingRating === rating ) {
this.resetTooltip( recipeCardElement, data );
}
},
resetTooltip( recipeCardElement, data ) {
window.TastyRecipes.staticTooltip.destroy();
this.savingRating = false;
// Reset the default rating.
const cardRatingContainer = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
if ( cardRatingContainer ) {
this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;
cardRatingContainer.dataset.trDefaultRating = this.defaultRating;
this.resetSelectedStar( cardRatingContainer, data );
}
},
resetSelectedStar( cardRatingContainer ) {
const selectedRatingElement = cardRatingContainer.querySelector( ‘(data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”)’ );
if ( selectedRatingElement ) {
selectedRatingElement.querySelector( ‘(data-tr-clip)’ ).dataset.trClip = this.currentRatingPercentage;
selectedRatingElement.parentNode.dataset.trChecked = 1;
}
const previousSelectedElement= cardRatingContainer.querySelector( ‘(data-tr-checked)’ );
if ( previousSelectedElement ) {
const currentSelectedRating = previousSelectedElement.querySelector(‘(data-rating)’);
if ( currentSelectedRating !== selectedRatingElement ) {
delete previousSelectedElement.dataset.trChecked;
}
}
},
backwardCompFormRatingPosition() {
const ratingsButtons = document.querySelector( ‘#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons’ );
if ( ! ratingsButtons ) {
return;
}
const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);
if ( ! ratingsButtonsStyles.display.includes( ‘flex’ ) ) {
ratingsButtons.style.direction = ‘rtl’;
}
if ( typeof tastyRecipesRating !== ‘undefined’ ) {
// Select the rating that was previously selected in admin.
ratingsButtons.querySelector( ‘.tasty-recipes-rating(value=”‘ + tastyRecipesRating + ‘”)’ ).checked = true;
}
const ratingSpans = ratingsButtons.querySelectorAll( ‘.tasty-recipes-rating’ );
for (const ratingSpan of ratingSpans) {
ratingSpan.addEventListener( ‘click’, event => {
if ( ratingSpan === event.target ) {
return;
}
ratingSpan.previousElementSibling.click();
} );
}
}
};
(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );
});