MLB Best Bets Today: Odds, predictions and picks for Friday, April 21st


MLB schedule today has 15 games

We’ve got a fully-loaded Friday card ready to go with all 30 teams in action as the weekend gets underway. That means more than double the games of the small Thursday slate that we had. Of course we still have one day game because the Cubs just have to be different, but 14 of today’s 15 games will conclude under the bright lights.


Top MLB Resources:

For the first time this season, we had an incident and I need to talk about it. Cubs starter Jameson Taillon was scratched with a groin injury and replaced by Javier Assad. DraftKings Sportsbook, which I use for the odds and for tracking, actually has a separate tab for Listed Pitchers, which can sometimes cause variance in the price. Other sportsbooks just give you four options in the Bet Slip when you select your bet of “Action” “[Away] Pitcher Must Start”, “[Home] Pitcher Must Start”, or “Both Pitchers Must Start” and will void bets accordingly if those guys don’t make their scheduled starts.

Never select “Action”. Action means that your bet has action on the team you selected regardless of the price, so you could make a bet on a team at -120, but if they swap starters and go to -160, your bet goes off at -160. You are locked into your bet at the new price. Similarly, if you bet a +160 and the pitcher gets scratched and the line goes down to +120, you are locked in at +120.

I was torn with how to list yesterday’s game in the tracking sheet because I have not brought up the topic of Listed Pitchers, nor have I cited the Listed Pitcher odds in that separate tab at DK. All plays and write-ups in the article assume the scheduled pitchers to be starting. Virtually every other sportsbook just has one set of odds. So, I apologize for any confusion, but I also didn’t want to create more confusion by noting that there’s a difference in the odds at DK if you choose that option.

So, that was what happened yesterday with the Cubs game. At least the Dodgers won as the pick, but I should have clarified long before yesterday about Action vs. Listed Pitchers. (Tracking sheet)

I’ll talk more about that and other things on today’s edition of VSiN Daily Baseball Bets.

Here are some thoughts on the April 21 card (odds from DraftKings):

Los Angeles Dodgers (-165, 9.5) at Chicago Cubs

Julio Urias and Drew Smyly are set to get the day going at Wrigley Field with a matinee on the North Side. Urias is off to a fine start with a 1.90 ERA, 2.57 xERA, and a 3.30 FIP over his 23.2 innings of work. All four of his starts have been solid with no more than two earned runs allowed and at least a strikeout per inning. He’s done what he does best and limited hard contact with a 32.3% Hard Hit% and has only allowed an average exit velocity of 87.2 mph on 62 batted ball events.

Smyly struggled badly in his first start against the Reds with seven runs allowed in 4.2 innings, but he’s only allowed one run in each of his last two starts against the Mariners and Dodgers. Smyly has yielded just a 28.3% Hard Hit% and an average EV of 84.2 mph across 46 batted ball events.

The wind is forecast to be blowing out today at Wrigley Field with temps in the 60s based on the source I use (Rotogrinders’ Kevin Roth), but the total is only 9.5 here, so that’s a little bit interesting. I don’t have a play in this game either way, but this is a total to watch.

Cincinnati Reds at Pittsburgh Pirates (-140, 8.5)

The Pirates continued their hot start with a 4-3 win over the Reds on Thursday night and will look for another win with de facto ace Mitch Keller on the bump. It will be Graham Ashcraft for the Reds, who are now down to 7-13 on the season, so it does feel like my preseason thoughts on both teams were a little misguided, but there’s a lot of baseball to go.

What has not been misguided is my love for Ashcraft, who has allowed just three runs on 14 hits in his three starts across 19 innings. He’s added some more swing and miss with 17 K in 19 innings pitched. He’s only allowed 14 hits and just one home run, which was a solo shot in his first outing against the Pirates. He did give up some hard contact last time out against the Phillies, but still has a Hard Hit% of 39.2% and has only allowed three barrels with an average exit velo under 90 mph in all three outings.

Like I’ve mentioned before, hard-hit contact is a lot more tolerable on the ground, even in the post-shift era, and his GB% of 60.8% signals a lot of it being on the infield. He does, however, have a .260 BABIP against with a 92.2% LOB%, so those two metrics are definitely open to a bit of negative regression.

Keller comes into this start with a 3.80 ERA, a 4.29 xERA, and a 4.69 FIP, so he has some regression signs of his own to factor into the equation. He’s struck out over a batter per inning with a lot more K% upside than we usually see out of him, but he’s running an 83.3% LOB%, so that explains the difference between his ERA and FIP. He’s also given up four homers so far and FIP is very penal towards the long ball.

Keller allowed four runs to the Reds in his first start, but has only allowed six combined runs over the three starts since. Also, he’s got a Hard Hit% against of just 22.7%, but oddly enough, a Barrel% of 12.1%. When he’s allowed hard contact, it has been the absolute worst kind, but three of the four homers have been solo shots.

They’ll be racing the weather a bit in this one with some rain forecasted around 9 p.m. Usually players know that and you get some swings early in the count and whatnot. I could definitely see this game holding under 8, but that’s a low number in the current run environment. No play for me here, but let’s see if both guys keep pitching well.

Colorado Rockies at Philadelphia Phillies (-320, 8.5)

The Rockies will send 25-year-old Noah Davis out for his second MLB start as he faces long odds in an underdog role against Aaron Nola and the Phillies. Davis allowed three hits and three walks in his debut start over 19 batters with five strikeouts in five innings. He made the highlight reel on social media with a comebacker that took his hat off of his head, but managed to keep the Mariners scoreless at T-Mobile Park. He gets another start away from Coors Field here.

Davis only allowed three hard-hit balls in that outing. The UCSB product is a strike-thrower with five pitches who can use them all, but nothing really stands out or explodes out of his hand. He threw 60 strikes in 95 pitches in that first start after allowing eight runs (six earned) on 14 hits in 12.2 minor league innings. He had walked seven, hit four guys, and only struck out six in those three Triple-A starts, so his debut start was a bit of a shocker. Nearly 74% of his pitches were sinkers and sliders.

The interesting thing about this game is that it’s probably pretty tough to justify the Phillies at such a big price because Nola does not look like the Nola that we’ve come to know. He’s allowed 15 runs on 25 hits in 21.1 innings of work. Last time out, he allowed a season-best two earned runs, but only had four strikeouts against three walks in a start against the Reds. He’s just not super sharp right now, but the Rockies are a bad offense on the road almost across the board and this is a good chance for him to get right.

He’s done a good job of limiting hard contact with a 33.8% Hard Hit%, so at least that part of the command profile looks fine. He’s also had much bigger swinging strike rates in his last two starts. Slowly, but surely, the stuff seems to be coming around. I think today is a big start to see if it fully comes around and he dominates a lineup that he should.

San Diego Padres (-115, 9.5) at Arizona Diamondbacks

We’ll see Seth Lugo and Zac Gallen in this one as the Padres had some fun offensively for the first time in a while last night. They scored seven runs on seven hits with four walks in yesterday’s game against Ryne Nelson and the Snakes bullpen. The task at hand is certainly more difficult against Gallen today, but they will have a second game with Fernando Tatis Jr., who was 0-for-5 in yesterday’s contest.

Gallen had a couple rocky starts to begin the season with 10 runs on 13 hits in 10.2 innings, but he hasn’t allowed a run in his last two starts covering 13.2 innings. He’s struck out 18 and walked one in games against the Brewers at home and the Marlins on the road. Interestingly, those have been Gallen’s two worst starts from a Hard Hit% standpoint with a 45.5% mark on 11 batted balls against the Brewers (had 11 K) and a 60% mark against the Marlins on 15 batted balls.

In his home starts last season, Gallen held opponents to just a .236 wOBA and had a 2.49 ERA with a 2.91 FIP. This will be just his second start at home this season and the first one was that masterpiece against the Brewers.

Lugo has allowed just five runs on 17 hits in 16.2 innings of work as a starter for the first time since 2020. He made seven starts that year, but still only pitched 36.2 innings over 16 total appearances. Lugo is safe in the rotation with Joe Musgrove’s impending return tomorrow, as the Padres opted to send Ryan Weathers to the bullpen. That being said, he hasn’t been a full-time starter since 2017, so I’m curious to see how long he can remain in that role.

He’s coming off of his worst start of the season with three runs allowed on eight hits in 3.2 innings of work. Batted balls just found holes in that one, as he wasn’t really hit any harder than any other start. It was just one of those games.

I think a lot of people will look to back Gallen at a short price and that was my first inclination as well. Josh Hader has been used back-to-back days by San Diego as well, so he’s probably unavailable if this is a close game. I just don’t think there’s enough line equity on Gallen and the D-Backs here.

New York Mets at San Francisco Giants (-120, 9)

This one will feature Joey Lucchesi for the Mets and that’s a name that I haven’t heard in quite some time. The former Padres prospect hasn’t pitched at the big league level since June 18, 2021. For his MLB career, Lucchesi has a 4.24 ERA with a 4.12 FIP in 337.2 innings with over a strikeout per inning, but he’s struggled to stay healthy and post the right command profile to hang around a while.

Lucchesi only made eight appearances in the minor leagues last season and had three starts at Triple-A prior to this callup. He allowed four runs on 11 hits in 15.2 innings of work with a 16/7 K/BB ratio over 64 batters faced. I really have no idea how Lucchesi will do in his return, but he is left-handed and draws a Giants lineup that has been miserable against southpaws with a 63 wRC+, but they have been improving little by little.

The Giants will send Anthony DeSclafani to the bump. He’s got a 1.42 ERA with a 3.20 xERA and a 2.34 FIP in his 19 innings of work. He hasn’t walked any of the 68 batters he has faced and has allowed just a .216 BABIP with a 75.5% LOB%. Given that he has a 48.1% Hard Hit% on 52 batted ball events, that BABIP will be on the rise, not to mention he’s got a 55.8% GB% that would represent a huge outlier. He has a career 42.1% GB% and his highest mark ever is 45.1%.

That means some regression on batted balls will come. He’ll allow more fly balls and line drives, which are more detrimental forms of contact against. He just allowed 14 hard-hit balls and a 66.7% Hard Hit% against the Tigers last time out with an average exit velocity of 92.7 mph. His spin rates are up across the map and he’s increased his slider usage to induce more ground balls. He’s had some good seasons, but he’s pitching above his talent level to this point.

DeSclafani has also faced the White Sox, Royals, and Tigers, so he hasn’t faced a lineup anywhere near the caliber of the Mets. I don’t love the state of the Mets bullpen because they’ve won a lot of games lately and have had a heavy workload, but I do like picking against DeSclafani with some of his regression signs here. We saw something similar yesterday when Sean Manaea and Kodai Senga were both facing upgraded lineups and each guy struggled.

Given the Giants’ performance against LHP and how the Mets have done on the whole this season, I’ll take the chance on Lucchesi here.

Pick: Mets 1st 5 (-105)

Chicago White Sox at Tampa Bay Rays (-165, 8.5)

Michael Kopech and Calvin Faucher start us off in the American League, as the White Sox visit the Rays. Tampa Bay has had to shuffle a lot of things around on the pitching side in the early going and Faucher is said to be aiming for four innings here. He went 2.2 innings in his last appearance and allowed a run on two hits across 11 batters. If he gets into trouble – or maybe if he doesn’t – Cooper Criswell is a candidate to get some work in this game. He allowed four runs in four innings in his last MLB appearance four days ago.

I think there’s enough uncertainty with today’s plan for the Rays to think about the White Sox, but those thoughts are pretty abruptly stopped by the fact that Kopech gets the nod. Kopech has allowed 11 runs on 16 hits in 15.2 innings, including seven home runs. He’s allowed four runs in his last 11 innings, but a ton of hard contact in those two starts. For the season, Kopech has a 57.4% Hard Hit% and has allowed 14 barrels. His 29.8% Barrel% will ultimately come down, but is a sign of how bad his command has been this season.

Kopech has also walked 10 guys. He’s basically a two-pitch pitcher and his slider has not been effective with a low Whiff% and his fastball command has been really poor. He’s barely throwing his curveball and changeup, so the Rays don’t really have to worry too much about those pitches. A smart, well-prepared organization like Tampa Bay’s should be well-equipped for a guy like Kopech.

Tropicana Field is typically a pretty good pitcher’s park, but I think this game has potential for runs. Kopech’s command has been so atrocious and he’s facing a lineup that is really in a great spot from a production standpoint. The White Sox will get a stretched out Faucher and likely Criswell, who is a fringy MLB pitcher at best. 

Also, something that merits watching is that the Rays bullpen has a 2.89 ERA with a 4.01 FIP and a 4.96 xFIP, so they’re a bit of a regression candidate. The White Sox pen owns a 6.68 ERA, so they’re struggling. I think we get a higher-scoring game and the history of the Trop is keeping this total more reasonable at 8.5.

Pick: Over 8.5 (-115)

Toronto Blue Jays at New York Yankees (-135, 8.5)

Domingo German was the subject of a lot of scrutiny last time out, as what looked to be a foreign substance was found on his hands. He was forced to wash them and had some spin rate decreases after cleaning up, but the damage had already been done to the Twins offense, as he struck out 11 in 6.1 innings and allowed just one run on three hits.

For the season, he owns a 3.86 ERA with a 3.55 FIP and you can bet he’ll be checked a little more closely from this point forward. He draws a good Blue Jays lineup here and the thing about German is that he can give up the long ball, though he’s only allowed a couple this season. He’s allowed 132 in 427.2 innings while battling injuries and serving a suspension.

Yusei Kikuchi goes for the Jays in this one, as he has two good starts and one bad start to his name. He just allowed one run on four hits with nine strikeouts against the Rays in his most recent outing at home. Kikuchi has allowed eight runs on 16 hits in 15.1 innings, but the command profile continues to be a huge concern. He has allowed an average exit velocity of 92.7 mph and a 48.8% Hard Hit% on the season against the Royals, Angels, and Rays.

I’m not sure how much I want to trust either starter in this one and this game seems to be priced pretty actually.

Detroit Tigers at Baltimore Orioles (-175, 9)

Not much to say about this game, so it can be a bit of a time-saver. Michael Lorenzen is making his second start of the year after allowing six runs on eight hits to the Giants back on April 15. Aside from the two homers, he limited hard contact, but that isn’t a ringing endorsement by any means. He had a 4.24 ERA with a 4.31 FIP last season as a full-time starter for the first time since 2015.

I don’t like to bet on guys like that and the Orioles may honestly be priced a little short here. Tyler Wells owns a 4.17 ERA and a 4.24 FIP in his 177 innings of work. The right-hander has allowed seven runs on 11 hits in 16.1 innings this season, but he had a rocky outing against the Yankees that skews the numbers a little bit. He wasn’t super sharp last time out against the White Sox and is pitching for the first time in seven days.

Baltimore’s price might be short here because the Tigers are so bad on offense, but Wells is struggling to locate based on his last two starts with a Hard Hit% of 42.9% and four barrels.

Oakland Athletics at Texas Rangers (-205, 8)

The hapless A’s are in Texas to take on the Rangers and are in another big underdog role. It will be JP Sears on the bump for Oakland and Jon Gray for Texas. Sears has been a useful starter with eight runs allowed on 15 hits in 15.2 innings of work, but he has allowed five home runs. His 6.53 FIP is a byproduct of the long ball, plus a limited number of strikeouts. That’ll be the case for him most of the year, as he’s a pitch-to-contact control artist who will sometimes leave the ball in the middle of the plate.

It really boils down to whether or not those homers are solo shots or not. I’d also expect him to be better at home as the season goes along because the Coliseum is so much friendlier for pitchers. He’s not at home here, so that is a bit of a black mark against his chances.

Gray’s last start was interrupted after two innings because of a comebacker off the elbow. He’s on an extra day of rest and seems no worse for the wear, so he gets the call and a much more favorable matchup than any of his other three starts this season. Those came against the Orioles, Cubs, and Astros. He’s allowed five runs on 11 hits with a 13/6 K/BB ratio.

This feels like a spot where the home team run line is actually a decent investment. The Rangers have a big bullpen advantage and Gray is stepping down in class, where he has the chance to pitch really well. The A’s are 1-6 on the road and five of the six losses are by more than a run. Overall, 12 of their 16 losses have been by more than a run and I expect this to be another.

It is tough with only eight chances for Texas to hit, but Sears looks like a guy that will struggle on the road and Gray has had good efforts against better teams. The Rangers also have the top bullpen by fWAR and one of the top pens by ERA. The A’s are the worst bullpen in baseball, so that helps here as well.

Pick: Rangers Run Line -1.5 (-105)

Miami Marlins at Cleveland Guardians (-135, 7.5)

This is one of two games severely threatened by bad weather. I think a postponement in Nationals/Twins is absolutely going to happen. Rain really threatens this game tonight. Because it’s an interleague game and tomorrow’s forecast also looks shady, they’ll do everything they can to play this one tonight.

I prefer Braxton Garrett to Zach Plesac, but Cleveland definitely has the stronger bullpen. What is interesting with Plesac is that the Guardians have made a big adjustment to make him throw a ton of sliders. It’s a good idea, as his fastball grades as one of the worst in baseball, but his slider is a semi useful pitch. He’s thrown it 56% and 54.4% of the time in his last two starts and his stat lines have been significantly better. 

I’m still not a big believer in the profile and shutting down the Nationals as a right-hander does nothing for me. His good start against Seattle was full of smoke and mirrors, as he allowed a 70% Hard Hit% with 14 hard-hit balls in 20 batted ball events.

Garrett has allowed five runs on 19 hits in 13.1 innings. He’s running a .419 BABIP, which should come back to earth, but also an 82.5% LOB%, which is definitely high for a guy like him. It’s just a weird game to handicap with the weather factors, so I’m staying away. I mostly just wanted to mention Plesac’s pitch usage changes.

Houston Astros at Atlanta Braves (-115, 9)

We’ve got a good pitching matchup here with a couple of youngsters in Hunter Brown and Bryce Elder. The 24-year-old Brown has allowed just four earned runs (seven total) in three starts, with all four runs coming in his first outing against the Tigers. He allowed three unearned runs over starts against the Twins and Rangers. He’s got 17 strikeouts against six walks and a 39.6% Hard Hit% against.

The way to best the Braves is to induce swings and misses because they make so much hard contact when they do put the bat to the ball. Brown may need to find a bit more of that with a 10.3% SwStr% this season. He’s not getting many chases outside the zone and may be throwing too many strikes. There is an art to not throwing too many hittable pitches, but I’m not sure he’s mastered that to this point. That said, he is throwing lots of cutters and curveballs, so I think more strikeouts will come.

The 23-year-old Elder has allowed just three runs on 16 hits in his 17.2 innings of work. He’s struck out 17 and walked six, but he’s faced the Cardinals, Reds (at home), and Royals. St. Louis has a strong lineup, but the other two are not nearly as daunting as this Houston squad. Elder has also allowed a 47.9% Hard Hit% in his 48 batted balls, so he’s living right with an 87% LOB%.

I don’t really see many edges in this one. I think both Brown and Elder have upside, but also have some concerns. These are two solid offenses and two solid bullpens. Tough, evenly-matched game.

Boston Red Sox at Milwaukee Brewers (-170, 8.5)

We’ll see some interleague action in Milwaukee with a matchup between the Red Sox and the Brewers. It will be Nick Pivetta for Boston and Freddy Peralta for Milwaukee. Pivetta had a couple good outings to open the year with solid work against the Pirates and Rays, but allowed six runs on five hits in four innings against the Angels last time out.

Also, “solid” work is a little misleading, as he limited runs in those first two starts, but still allowed a lot of hard contact. He has a 20.5% Barrel% and a 59% Hard Hit% on the season in just 39 batted ball events. Location is key and he hasn’t had good location so far this season. I actually went into this handicap thinking Boston might have some line value, but I simply cannot back a guy giving up so many hard-hit balls. The risk of ruin is way too high. The Angels were the first to take advantage, though, oddly enough, they had the lowest Hard Hit% of the three teams that Pivetta has faced.

Peralta is coming off of a rough outing of his own with five runs allowed on nine hits in five innings against the Padres. He had allowed one run in his first 12 innings against the Mets and Cardinals, but had a reversal of fortunes on batted balls. Peralta only allowed a 31.6% Hard Hit% in that start against San Diego, but it was death by singles until he gave up a two-run homer in the fifth.

Nothing on this game for me.

St. Louis Cardinals at Seattle Mariners (-140, 8)

George Kirby should get a stiffer test in this one after facing the Rockies and Guardians in his last two starts as he takes on the Cardinals. Kirby has allowed seven runs on 20 hits in 16.2 innings of work, as he only has 12 strikeouts, but also has only allowed one walk. Kirby doesn’t necessarily need the strikeouts to be at his best, but they certainly help and it is a bit surprising to see so little swing-and-miss upside from him to this point.

That being said, he’s throwing a bunch of fastballs. His Z-Contact% is 93.1%, which is up nearly 8% from last season. I guess as the season rolls along, we could see him mix up his arsenal a bit more, but he’s up with his fastball usage this season from more sinkers. One concern I do have here is that righties hit Kirby well last season, posting a .324/.354/.492 slash with a .366 wOBA. It was lefties that had issues, hanging a .210/.250/.303 slash and a .245 wOBA.

The heart of the Cardinals order with Nolan Arenado, Paul Goldschmidt, and Willson Contreras is all right-handed, so that could be rather interesting. We should also see another righty added to the lineup if Brendan Donovan can’t go again.

Steven Matz has not looked good so far this season. He’s allowed 12 runs on 22 hits in 16.2 innings with 17 strikeouts against eight walks. His stat line looked better against the Pirates last time out with two runs on three hits, but he walked five and allowed an average exit velocity of 93.1 mph with a 57.1% Hard Hit%.

I gave some thought to the over here, as well as the Cardinals, but ultimately decided against making a bet on either play.

TL;DR Recap

Mets 1st 5 (-105)
White Sox/Rays Over 8.5 (-115)
Rangers -1.5 (-105)